我有一个类的kendo Grid,对于那个类,我已经构建了一个编辑器模板,为其中一个字段生成一个单选按钮。
此单选按钮不反映属性的值,并且始终为false
,虽然我已经通过在表单上打印来检查该值,但我确定它是true
。如果我为该字段设置了默认值,则单选按钮将反映该值,而不管该字段的实际值。
我应该注意,我正在使用客户端模板显示该字段的文本,并且工作正常。
这是网格:
@(Html.Kendo().Grid<Class>()
.Name("Grid")
.Columns(columns =>
{
columns.Bound(x => x.BActive).ClientTemplate("#= BActive ? 'Open':'Close' #");
/// removed for brevity
})
.Editable(editable => editable.Mode(GridEditMode.PopUp))
.DataSource(ds => ds.Ajax()
.Model(model => {
model.Id(x => x.SWhCode);
model.Field(x => x.BActive).DefaultValue(true);
})
)
)
这是在editorTemplate
:
<label>
@Html.RadioButtonFor(x => x.BActive, true, new { @class = "radio-inline" }) Open
</label>
<label>
@Html.RadioButtonFor(x => x.BActive, false, new { @class = "radio-inline" }) Close
</label>
答案 0 :(得分:3)
bool
类型将在客户端中呈现,如此
true => True
false => False
您是否尝试检查以HTML格式呈现的元素?您会看到bool
值转换为大写string
。要解决此问题,您应该在类型为true
的单选按钮中更改false
和string
。
您的观看代码应该是这样的
<label>
@Html.RadioButtonFor(x => x.BActive, "true", new { @class = "radio-inline" }) Open
</label>
<label>
@Html.RadioButtonFor(x => x.BActive, "false", new { @class = "radio-inline" }) Close
</label>