Asp.net mvc 3 MVC3 WebGrid复选框

Asp.net mvc 3 MVC3 WebGrid复选框,asp.net-mvc-3,checkbox,webgrid,Asp.net Mvc 3,Checkbox,Webgrid,我试图在web网格上的列中添加一个复选框,但我发现使用Html.checkbox很难将其呈现出来。如果我使用input type=“checkbox”进行渲染,但我似乎无法将值保存在视图模型中 我有一个相当复杂的视图,它有两个WebGrid,您可以选择其中一个中的项目移动到另一个,当移动到grid1时,您可以根据需要选中每一行的复选框。一切正常,只是我无法获取要保存的复选框的值 带有复选框的my grid代码如下所示: var grid1 = new WebGrid(source: Model.

我试图在web网格上的列中添加一个复选框,但我发现使用Html.checkbox很难将其呈现出来。如果我使用input type=“checkbox”进行渲染,但我似乎无法将值保存在视图模型中

我有一个相当复杂的视图,它有两个WebGrid,您可以选择其中一个中的项目移动到另一个,当移动到grid1时,您可以根据需要选中每一行的复选框。一切正常,只是我无法获取要保存的复选框的值

带有复选框的my grid代码如下所示:

var grid1 = new WebGrid(source: Model.FieldsInTemplate, canSort: false, defaultSort:"FieldName");

    @grid1.GetHtml(headerStyle:"gridGroupRow", tableStyle: "gridGroup", rowStyle: "gridRow", alternatingRowStyle: "gridRowAlt", columns: grid1.Columns(
        grid1.Column("FieldName", "Field Name"),
        grid1.Column(header: "Required", format: @<text><input name="IsRequired" type="checkbox" value="@item.IsRequired" /></text>),
        grid1.Column(format: (item) => new HtmlString("<a href='#' id='test' onclick='updateTemplate(false," + item.FieldId.ToString() + ");'>Remove</a>"))
             ))
请让我知道,如果这是一个有点模糊,我是新来的,不想让你负担太多不必要的代码

干杯


标记

复选框的值不确定是否“选中”。您需要使用checked=“checked”

我对剃须刀不是百分之百的了解,但这里有一个尝试:

<input name="IsRequired" type="checkbox" @if(item.IsRequired) { <text>checked="checked"</text>} value="@item.IsRequired" /> 


这是否解决了您的问题?

复选框的值不确定是否“选中”。您需要使用checked=“checked”

我对剃须刀不是百分之百的了解,但这里有一个尝试:

<input name="IsRequired" type="checkbox" @if(item.IsRequired) { <text>checked="checked"</text>} value="@item.IsRequired" /> 


这能解决你的问题吗?

我想出了我想要的方法:

   grid.Column("Select", header: "", format: (item) => @Html.Raw("<a href='" + item.GetSelectUrl() + "' /><img src='" + ((grid.SelectedRow == item) ? "../../Content/images/AdminSelect-ON.png" : "../../Content/images/AdminSelect-OFF.png") + "' />")),
grid.Column(“选择”,标题:”,格式:(项)=>@Html.Raw(“”),

我找到了我想要的方法:

   grid.Column("Select", header: "", format: (item) => @Html.Raw("<a href='" + item.GetSelectUrl() + "' /><img src='" + ((grid.SelectedRow == item) ? "../../Content/images/AdminSelect-ON.png" : "../../Content/images/AdminSelect-OFF.png") + "' />")),
grid.Column(“选择”,标题:”,格式:(项)=>@Html.Raw(“”),

如果您这样声明列:

grid.Column("Select", "Select", format: @<input type="checkbox" name="selectedrows" value="@item.WedNo" />)

此处selectedrows将包含所有选中的复选框。

如果您这样声明列:

grid.Column("Select", "Select", format: @<input type="checkbox" name="selectedrows" value="@item.WedNo" />)

此处selectedrows将包含所有选中的复选框。

我没有使用WebGrid,但怀疑它可能与Html.CheckboxFor相同,后者生成一个额外的隐藏字段,该字段始终设置为false。这可能是造成问题的原因——我没有使用WebGrid,但怀疑它可能与Html.CheckboxFor相同,它会生成一个额外的隐藏字段,该字段总是设置为false。这可能是导致问题的原因-很遗憾,这并没有解决问题。谢谢你的尝试。这看起来像是在说“如果选中了IsRequired,则选中该框”。当网格最初加载时,这个字段总是false,因此如果需要,用户会检查它。嗯,我总是对对象的“列表”有问题。这篇文章是什么样子的?好吧,如果行已经选中了复选框,那么它将进入更新视图(在运行时显示为选中的字段)。然而,在提交时,以前检查过的字段(即使在运行时没有更改它们)现在将被取消检查。这有点令人困惑。它不会进入控制器吗?同样,表单的POST请求是什么样子的?我不需要原始视图,只需要数据元素。嘿,谢谢你的输入,我实际上已经解决了这个问题。事实证明,实现此页面大部分功能的开发人员在部分视图中有此代码,而主视图在每次移动某些内容时都有对控制器的ajax调用。因此,零件上的元素只是视觉表现。我必须创建一个新的AJAx调用来实现我想要的。不幸的是,这并没有解决这个问题。谢谢你的尝试。这看起来像是在说“如果选中了IsRequired,则选中该框”。当网格最初加载时,这个字段总是false,因此如果需要,用户会检查它。嗯,我总是对对象的“列表”有问题。这篇文章是什么样子的?好吧,如果行已经选中了复选框,那么它将进入更新视图(在运行时显示为选中的字段)。然而,在提交时,以前检查过的字段(即使在运行时没有更改它们)现在将被取消检查。这有点令人困惑。它不会进入控制器吗?同样,表单的POST请求是什么样子的?我不需要原始视图,只需要数据元素。嘿,谢谢你的输入,我实际上已经解决了这个问题。事实证明,实现此页面大部分功能的开发人员在部分视图中有此代码,而主视图在每次移动某些内容时都有对控制器的ajax调用。因此,零件上的元素只是视觉表现。我必须创建一个新的AJAx调用来实现我想要的。