我正在尝试将复选框添加到 Web 网格上的列中,并且我发现使用 Html.CheckBox 来渲染它很难。如果我使用 input type="checkbox" 它会呈现,但我似乎无法将值保存在视图模型中。
我有一个相当复杂的视图,它有两个 webGrid,你选择一个中的项目移动到另一个,当移动到 grid1 时,如果你愿意,你可以在每一行上选中一个框。一切正常,除了我无法保存复选框的值。
具有复选框的网格的代码如下所示:
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>"))
))
因此,使用上述方法,网格呈现一个复选框,但在提交时实体始终为 false。该视图使用以下视图模型:
public class TemplateFieldInteractViewModel
{
public IList<MetadataTemplateFieldInstanceDisplayViewModel> FieldsInTemplate
{
get;
set;
}
public IList<MetadataTemplateFieldInstanceDisplayViewModel> FieldsNotInTemplate
{
get;
set;
}
}
MetadataTemplateFieldInstanceDisplayViewModel 看起来像:
public class MetadataTemplateFieldInstanceDisplayViewModel
{
public int FieldId {get;set;}
public string FieldName {get;set;}
public bool IsRequired {get;set;}
}
如果这有点含糊,请告诉我,我是新来的,不想用太多不必要的代码让你超载。
干杯
标记