C# 如何使用MvcContrib呈现标题行中的复选框?

C# 如何使用MvcContrib呈现标题行中的复选框?,c#,asp.net,asp.net-mvc,asp.net-mvc-4,mvccontrib-grid,C#,Asp.net,Asp.net Mvc,Asp.net Mvc 4,Mvccontrib Grid,我正在尝试使用以下命令呈现网格标题行中的“全选”复选框 column.For(x => Html.CheckBox("InvoiceSelection", false, new {@class = "checkbox reqPayment ", value = x.InvoiceId})) .Header(o=>"<th><input type=\"checkbox\" id='chkHeader' />Select All</th&

我正在尝试使用以下命令呈现网格标题行中的“全选”复选框

column.For(x => Html.CheckBox("InvoiceSelection", false, new {@class = "checkbox reqPayment ", value = x.InvoiceId}))
          .Header(o=>"<th><input type=\"checkbox\" id='chkHeader' />Select All</th>")
          .Encode(false)
          .HeaderAttributes(@class => "text-error");
column.For(x=>Html.CheckBox(“InvoiceSelection”,false,new{@class=“CheckBox reqPayment”,value=x.InvoiceId}))
.标题(o=>“全选”)
.Encode(假)
.HeaderAttributes(@class=>“文本错误”);
但是,这不会按预期渲染,而是使用


“行”复选框呈现正确,并且已经尝试过了,但不确定这是否适用于我目前使用的Nuget软件包-

我已经用相同的版本测试了您的上述代码,它对我来说运行良好

可能值得检查以下内容:

视图中是否有特定的参考

@using MvcContrib.UI.Grid
如果您在项目的其他地方使用了另一个
Html.Grid
helper,那么它可能会与另一个
Html.Grid
helper混淆

是否还有其他因素在添加排序功能,比如jQuery插件

编辑(按问题作者)

@赫奇诺伊德提出了一个关于“其他因素”的好观点,这导致我找到了解决方案

这里有一些关于最终解决方案的注释

  • 如果使用的是可排序网格,则需要在列上设置
    sortable(false)
  • 不需要
    元素
  • 我最终使用的解决方案

    column.For(x => Html.CheckBox("InvoiceSelection", false, new {@class = "checkbox reqPayment ", value = x.InvoiceId}))
          .Header(o=>"<input type=\"checkbox\" id='chkHeader' />")
          .Encode(false)
          .Sortable(false)
          .HeaderAttributes(new Dictionary<string, object> { { "style", "width:20px" } }); 
    

我没有其他插件,也没有正确的引用。您的结果是否显示标题行中的复选框?是的,我使用JU完成了一个简单的mvc开箱即用的新项目。经过一些挖掘,它需要一些额外的调整。
th
包装器需要拆下一个。很高兴你修好了。我以后会注意的。
column.For(x => Html.CheckBox("InvoiceSelection", false, new {@class = "checkbox reqPayment ", value = x.InvoiceId}))
      .Header(o=>"<input type=\"checkbox\" id='chkHeader' />")
      .Encode(false)
      .Sortable(false)
      .HeaderAttributes(new Dictionary<string, object> { { "style", "width:20px" } }); 
$(document).ready(function () {
    $('#chkHeader').change(function() {
        if ($(this).is(':checked')) {
            $('.reqPayment').attr('checked', 'checked');
        } else {
            $('.reqPayment').removeAttr('checked');
        }
    });
});