3

クラス用の kendo Grid があり、そのクラス用に、フィールドの 1 つのラジオ ボタンを生成するエディター テンプレートを作成しました。

このラジオ ボタンはプロパティの値を反映しておらず、常に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>
4

1 に答える 1

3

boolタイプはこのようにクライアントでレンダリングされます

true => True
false => False

HTML でレンダリングされた要素を検査しようとしましたか? bool値が capitalize に変換されることがわかりますstring。これを克服するには、ラジオボタンのタイプも変更する必要がtrueあります。falsestring

ビューコードは次のようになります

<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>
于 2015-05-21T08:47:52.090 に答える