1

列の1つにドロップダウンリストを持つEditorTemplateがあるグリッドがあります。

columns.Bound(i => i.TypeId).Title("Types").EditorTemplateName("Types").ClientTemplate("#: TypeId != 3 ? Type : '-'#").HtmlAttributes(new { @style = "text-align:center; " }).Width(75);

テンプレート

@(Html.Kendo().DropDownListFor(i => i)
                .Name("TypeId")
                .DataValueField("Id")
                .DataTextField("Type")
                .BindTo((IEnumerable)ViewBag.Types)
                .OptionLabel("Select Type")
                .Value("TypeId")
)

これを実現したいのは、TypeId が 3 の場合で、エディター テンプレートで使用したくない場合です。「-」を無効な状態で表示したいだけです。

onedit イベントでドロップダウンを無効にすることはできますが、無効な状態でもドロップダウンを表示したくありません。

どんなアイデアでも大歓迎です。

以下のようにテンプレートを無効にするために私がしたこと:

 function disableOnEdit(e) {

        if (e.model.isNew()) {
            // Leave it editable if the row is new.
        } else {
             //Disable the editor for Element in this row.
            var select = e.container.find('input[name=TypeId]').data('kendoDropDownList');
            if (select != null && select._selectedValue == "3") {
                //var text = select.find(".k - input");
                //select.dataSource = null;
                //select._selectedValue = "-";
                //select.editTemplate = null;
                //select.innerHTML = "-";
                //select._current[0].innerText = "-";
                select.enable(false);
            } 
        }
    }

列からドロップダウンリストを削除するために多くのことを試みました。私は剣道UIが初めてなので、助けてください。

ありがとう

4

1 に答える 1