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