小编Ted*_*Ted的帖子

jQuery Validation插件:禁用指定提交按钮的验证

我有一个包含多个字段的表单,我正在使用JörnZaeffere的优秀jQuery Validation插件验证(其中一些字段添加了用于自定义验证的方法).如何规避使用指定的提交控件进行验证(换句话说,使用一些提交输入进行激活验证,但不要与其他人一起激活验证)?这与使用标准ASP.NET验证器控件的ValidationGroup类似.

我的情况:

它与ASP.NET WebForms有关,但如果您愿意,可以忽略它.但是,我更多地使用验证作为"推荐":换句话说,当提交表单时,验证会触发,而不是显示"必需"消息,"推荐"会显示"你推荐"的内容错过了以下领域....你还想继续吗?" 在错误容器中的那一点,现​​在可以看到另一个提交按钮,可以按下该按钮,忽略验证并提交.如何规避此按钮控件的表单.validate()并仍然发布?

http://jquery.bassistance.de/validate/demo/multipart/上购买和出售房屋样本允许这样做以便点击之前的链接,但它通过创建自定义方法并将其添加到验证器来实现.我宁愿不必创建自定义方法复制验证插件中已有的功能.

以下是我现在所获得的立即适用脚本的缩短版本:

var container = $("#<%= Form.ClientID %> div.validationSuggestion");

$('#<%= Form.ClientID %>').validate({          
    errorContainer: container,
    errorLabelContainer: $("ul",container),
    rules: {
        <%= YesNo.UniqueID %>: { required: true },
        <%= ShortText.UniqueID %>: { required: true } // etc.

    },
    messages: {
        <%= YesNo.UniqueID %>: 'A message.',
        <%= ShortText.UniqueID %>: 'Another message.' // etc.
    },
    highlight: function(element, errorClass) {
        $(element).addClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
        $(element.form).find("label[for=" + element.id + "]").removeClass("valid");
    },
    unhighlight: function(element, errorClass) {
        $(element).removeClass(errorClass);
        $(element.form).find("label[for=" …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-validate

164
推荐指数
5
解决办法
16万
查看次数

键盘快捷键关闭Visual Studio中的所有选项卡但当前的选项卡?

有没有人知道键盘快捷键来关闭除Visual Studio中当前选项卡以外的所有选项卡?虽然我们在这里,关闭所有标签的快捷方式?这有一个Resharper选项吗?我看过去,从来没有找到它.

.net resharper visual-studio

73
推荐指数
6
解决办法
3万
查看次数

NHibernate 2.*映射文件:如何定义可空的DateTime类型(DateTime?)?

我知道NHibernate 2的一个重大变化是*不再支持NHibernate.Nullables.因此,您在映射文件中使用什么来映射可为空的DateTime?类型?对于ie:

可以理解的是不起作用:

<property name="CreateDate" column="CreateDate" type="DateTime?" not-null="false" />
Run Code Online (Sandbox Code Playgroud)

不再支持:

<property name="ModifiedDate" column="ModifiedDate" type="Nullables.NHibernate.NullableDateTimeType, Nullables.NHibernate" not-null="false"/>
Run Code Online (Sandbox Code Playgroud)

我知道它一定很明显,但我找不到它!

答案很简单:NHibernate会反映出有问题的类,并发现该属性的反射类型是DateTime?一切都靠自己.

谢谢@Justice!

nhibernate datetime nullable nhibernate-mapping

16
推荐指数
1
解决办法
1万
查看次数

DI框架:如何避免不断地将注入的依赖项传递到链上,而不使用服务定位器(特别是使用Ninject)

我需要更多的帮助来"获得"像Ninject这样的DI框架如何超越基础.

拿Ninject样本:

class Samurai {
private IWeapon _weapon;

    [Inject]
    public Samurai(IWeapon weapon) {
      _weapon = weapon;
    }

    public void Attack(string target) {
      _weapon.Hit(target);
    }
 }
Run Code Online (Sandbox Code Playgroud)

没有DI框架(即上面的[Inject]引用),引用类看起来像:

class Program {
   public static void Main() { 
    Samurai warrior1 = new Samurai(new Shuriken());
    Samurai warrior2 = new Samurai(new Sword());
    warrior1.Attack("the evildoers");
    warrior2.Attack("the evildoers");
  }
}
Run Code Online (Sandbox Code Playgroud)

...你正在新的一切.是的,你已经删除了Samurai中的依赖项,但是现在你已经在链上向前迈进了一步.简单.

使用Ninject,你可以通过以下方式摆脱新的一切:

class Program {
  public static void Main() {
    IKernel kernel = new StandardKernel(new WarriorModule());
    Samurai warrior = kernel.Get<Samurai>();
    warrior.Attack("the evildoers");
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,这是我的困惑领域:没有使某种服务定位器能够有效地新建适用的内核和模块(即.IoC.TypeResolver.Get <>()),什么是a)最好的方法不必到处都是新内核(服务定位器引用到处都是?),b)更重要的是,当你有一个依赖于自己的依赖关系的大型长链时,你会把它带到一路注入极端我确信这是一种严重的反模式(朋友称之为"热土豆依赖注入"反模式).

换句话说,我认为DI框架魔术的一部分是你不必一直向上插入依赖关系(即你的第一个引用在其构造函数中包含10个参数,其中没有任何与任何事情,直到链条更进一步) - …

c# dependency-injection ninject

14
推荐指数
1
解决办法
1056
查看次数

React JS:如何从this.state.data中正确删除一个项目,其中data是一个对象数组

我有一个组件,它<tr>根据通过AJAX调用检索的数据数组生成一个包含数据行(等)的表.一切都适用于编辑和添加数据,但我无法确定如何制作数组的不同副本(包含所包含对象的不同副本 - 由val,而不是由ref),以便当我删除指定的行时数据,适用的行将从表中删除.

目前,因为包含的对象是ref,即使我制作了数组的副本,我的表也删除了最后一行(即使行索引和数据都在我的AJAX调用中被正确引用和删除).

handleRowDelete: function(rowIdx) {
     // Correct row 
     var row = this.state.data[rowIdx];

     // This makes a new array, but the contained objects are still by ref
     var rows = this.state.data.slice();

     // This contains the proper row that will be deleted. If this array is set to data, the table is updated to reflect just the one row - as expected.
     var throwout = rows.splice(rowIdx, 1);
     console.log(throwout);

     // Whether I set via the React.addons: 
     var …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

14
推荐指数
1
解决办法
1万
查看次数

将字符串设置为"varchar"的sql类型而不是"nvarchar"

我有以下映射:

public class LogEntryMap
{
    public LogEntryMap()
    {
        Map.Id(x => x.Id).GeneratedBy.Identity();
        Map(x => x.Context).CustomSqlType("varchar").Length(512);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,使用SchemaExport在SQL Server 2008中生成数据库时,生成的脚本会忽略长度,因此实际上它最终为varchar长度为1:

create table OV_SAC.dbo.[LogEntry] (
    Id BIGINT IDENTITY NOT NULL,
   Context varchar null,
   primary key (Id)
)
Run Code Online (Sandbox Code Playgroud)

.CustomSqlType("varchar 512")抛出一个例外.并且没有定义CustomSqlType,字符串被映射到nvarchar(它确实尊重Length属性).

有什么建议?

fluent-nhibernate schemaexport

12
推荐指数
3
解决办法
8482
查看次数

选择2 v4无法选中,按回车键,然后选择,使用Firefox(也称为无鼠标访问)

我目前无法<select>在Firefox(38.0.5)中选中启用S​​elect2的元素 - 换句话说,无法以<option>无鼠标的方式进行选择.在Chrome中,您可以在表单中进行制表,然后按enter,以便开始在Select2 select元素中选择一个项目.我没有在其他浏览器中测试过,但在提交实际错误报告之前,我想验证其他浏览器是否遇到同样的问题?

您可以在演示页面上复制.

  • 选择2 v4.0.0
  • Twitter Bootstrap 3.3.4(虽然没有为Bootstrap的样式添加任何其他项目)
  • Firefox v38.0.5

jquery jquery-select2 jquery-select2-4

11
推荐指数
3
解决办法
6478
查看次数

LINQ with subselect和groupby只获取列表中每个项目的最新版本

对于LINQ来说,我是新手......

我有一个IEnumerable通用列表,其中包含不同版本的答案(每个版本都有一个问题的FK).从这个列表中我只需要获得最新版本答案的字典.

一个非常简化的类图:

问题
-ID
-question
- ......其他属性


-ID
-Version
-QuestionID
-值
- ...其他属性

目前我有以下内容:

IEnumerable<Answer> answers = GetAnswers();

IDictionary<long, AnswerDTO> latestVersionAnswers = new Dictionary<long, AnswerDTO>();
if (answers != null)
{
latestVersionAnswers = answers
      .OrderBy(e => e.ID)
      .GroupBy(e => e.Question.ID)
      .Select(g => new AnswerDTO
                        {
                             Version = g.Last().Version, // g.Select(e => e.Version).Max(), 
                             QuestionID = g.Key,
                             ID = g.Last().ID,
                             Value = g.Last().Value
                                 }).ToDictionary(c => c.QuestionID);
        }
Run Code Online (Sandbox Code Playgroud)

虽然这在很大程度上起作用,但您可以很快发现它需要一些严肃的优化(并且有点脆弱,因为它取决于答案记录行顺序而不是"最大"逻辑).使用LINQ执行此操作的最佳方法是什么,或者最好只为每个循环执行多个操作?

  1. 如果我只需要版本(而不是ID,Value等)我就不需要OrderBy,因为我可以去g.Select(e => e.Version).Max()(或者我现在看到C#List <> GroupBy 2值的帖子,但这又会返回key/s和一个属性:Version).
  2. 最终,在这种特殊情况下,我更愿意"过滤"原始列表并返回原始答案项而不是涉及AnswerDTO.

任何指针或帮助将不胜感激!

c# linq lambda

9
推荐指数
2
解决办法
7933
查看次数

VisualSVN和类库不在工作副本根目录中

我们正在使用VisualSVN从SourceGear Vault切换到TortoiseSVN以进行Visual Studio集成 - 非常喜欢它.但是,我们在多个不同的应用程序中引用了多个类库,这些应用程序不是任何应用程序中工作副本根目录的一部分.处理此问题的最佳方法是什么,以便我们可以继续使用Visual Studio集成,但仍然保留位于每个项目/应用程序根目录之外的各种类库?SourceGear对此没有任何问题.

可以在资源管理器中使用TortoiseSVN单独添加类库,但是无法在Visual Studio中将更改提交到工作副本之外的任何内容; 也没有VisualSVN"交通灯"指示这些工作副本类库之外的状态.

顺便说一下,我们也将使用"一个包含许多项目的存储库"路径而不是多个存储库,特别是因为这是我们多年来一直工作的方式.

更新:

我重新阅读了之前看过的一些内容,发现svn:externals不仅仅是指在不同的存储库中使用代码,还可以用于在VisualSVN中使用多个工作副本.

请参阅http://www.visualsvn.com/support/topic/00007/http://svnbook.red-bean.com/en/1.2/svn.advanced.externals.html

但是,这是处理这个问题的最佳方法吗?有一个很好的线程可以解决问题,但并不能完全解决问题.

因此,使用svn:externals与否?是否使用多个存储库?同样,多年来我们在多个解决方案/应用程序中引用了共享类库中的代码,这对我们有用.现在如何最好地使用VisualSVN?

svn version-control tortoisesvn visualsvn visual-studio

7
推荐指数
1
解决办法
1387
查看次数

Ninject.Web.PageBase仍导致对注入依赖项的null引用

我有一个使用Ninject 2.0的ASP.NET 3.5 WebForms应用程序.但是,尝试使用Ninject.Web扩展来向System.Web.UI.Page提供注入,即使我切换到使用服务定位器来提供引用,我也会得到对我注入的依赖项的空引用(使用Ninject ),没有问题.

我的配置(为简单而愚蠢):

public partial class Default : PageBase // which is Ninject.Web.PageBase
{
    [Inject]
    public IClubRepository Repository { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {
        var something = Repository.GetById(1); // results in null reference exception.
    }
 }
Run Code Online (Sandbox Code Playgroud)

... //global.asax.cs

public class Global : Ninject.Web.NinjectHttpApplication
{
    /// <summary>
    /// Creates a Ninject kernel that will be used to inject objects.
    /// </summary>
    /// <returns>
    /// The created kernel.
    /// </returns>
    protected override IKernel CreateKernel() …
Run Code Online (Sandbox Code Playgroud)

asp.net webforms ninject

5
推荐指数
1
解决办法
2215
查看次数