Webグリッドの列にチェックボックスを追加しようとしていますが、Html.CheckBoxを使用してレンダリングするのは難しいです。入力型= "チェックボックス"を使用するとレンダリングされますが、ビューモデルに値を保存することはできません。MVC3 WebGrid CheckBox
私は2つの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です。ビューは、ののViewModelを使用しています。
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;}
}
私はここに新たなんだ、と過負荷にしたくない、これは少し曖昧である場合は私に知らせてくださいあまりにも多くの不要なコードを使用しています。
乾杯
マーク
私はWebGridを使用していませんが、常にfalseに設定されている余分な隠しフィールドを生成するHtml.CheckboxForと同じことをする可能性があるという疑いがあります。それは問題の原因となっているかもしれません - http://stackoverflow.com/questions/2697299/asp-net-mvc-why-is-html-checkbox-generating-an-additional-hidden-input – StuartLC