3

DropDownList のエントリを無効にすることは可能ですか? たとえば、ユーザーが「選択してください」エントリを選択できないようにすることができます。

4

4 に答える 4

4

剣道は現在そのような機能をサポートしていませんが、これは剣道ドロップダウンのオプションを無効にする最も簡単な方法です。

$("#" + id + "_listbox .k-item")[index].disabled = true;

where id -> ドロップダウン
インデックスの ID -> 無効にするドロップダウン内の要素の位置。

それが役に立てば幸い。楽しみ :)

于 2014-02-07T19:13:22.573 に答える
2

これは検証のための仕事だと思います。選択できないエントリをドロップダウンに表示する必要がある場合は、それらに異なる css を指定し (グレー表示)、値が選択されるとすぐに何らかのアクション (検証メッセージ) を実行します。ドロップダウンで選択を解除したり、他のトリックを実行したりすると、ユーザーが混乱します。機会があれば、ドロップダウンからアイテムを削除し、選択できない場合は表示しないでください-RGrahamが提案したように. 以下は、オプションのラベル (「選択してください」と求めたもの) のエントリを検証する方法と、変更後に選択された値を取得する方法の例です。

フィドル: http://jsfiddle.net/vojtiik/KpMk4/1/

// create DropDownList from input HTML element
 var ddl = $("#color").kendoDropDownList({
     dataTextField: "text",
     dataValueField: "value",
     dataSource: data,
     index: 0,
     optionLabel: "Select color...",
     change: function () {
        validator.validate();
         if (ddl.value() == 3)
         {
             console.log('Do something ?');
         }

     }
 }).data("kendoDropDownList");

 var validator = $("#color").kendoValidator().data("kendoValidator");  
于 2013-08-15T09:51:53.747 に答える
2

Select-Event を使用して、このオプションを無効にすることができます。

次のように簡単です。

$('input').kendoComboBox({
    dataTextField: 'text',
    dataValueField: 'id',
    dataSource: {
        transport: {
            read: function(options) {
                //instead, specify ajax call or get data from somewhere else
                options.success([{ id: -1, text: 'Please select' }, {id: 1, text: 'A'}]);
            }
        }
    },
    select: function(e) {
        var dataItem = this.dataItem(e.item.index());
        if(dataItem.id === -1) {
            e.preventDefault();
        }
    }
});
于 2013-08-15T07:37:24.767 に答える
0

私の場合、ユーザーに権限がない場合、ドロップダウンのオプションを無効にする必要があります。このオプションを無効にすることはできませんが、このオプションを削除しました。このコードが役に立ちますように。

   @(Html.Kendo().DropDownListFor(i => i.CallTypeId)

                                                    .Name("CallTypeId")
                                                    .HtmlAttributes(new { style = "width:100%" })
                                                    .DataTextField("MasterValueName")
                                                    .DataValueField("MasterValueId")
                                                    .Events(x => x.Open("ManageSecurity"))
                                                    .DataSource(source =>
                                                    {
                                                        source.Read(read =>
                                                        {

                                                            read.Action("GetCallType", "Common", new { Area = "" });

                                                        });
                                                    })
                                                    .OptionLabel("Select Call Type")
                                            )



 function ManageSecurity() {
            debugger;
            var result = '@TrackingHelper.CurrentUser.IsViewTestCallType';
            if (result == "False") {
                var ds = $("#CallTypeId").data("kendoDropDownList").dataSource;
                debugger;
                var elementToRemove = null;
                for (var i = 0; i < ds._data.length; i++) {
                    var element = ds._data[i];
                    debugger;
                    if (ds._data[i].MasterValueId === "335d2eae-dc47-40f7-b616-a2501b2f60bc") {
                        debugger;
                        elementToRemove = ds._data[i];
                    }
                }
                if (elementToRemove) {
                    debugger;
                    ds.remove(elementToRemove);
                }

            }
            else {
                debugger;

            }
        }
于 2015-12-29T10:24:14.660 に答える