2016-11-02 4 views
0

読み取り後にデータソースの戻り値に基づいてValueまたはSelectedIndexを設定しようとしています。剣道UIドロップダウンデータのデフォルト値をリストします

これは、この

Shared Function GetUserList() As IList Return db.GetDBUserList().Where(Function(w) w.value <> 0).Select(Function(s) New With {.id = s.value,.text = s.text,.isdefault = s.isdefault}).ToList() End Function

のように見えるGetUserList方法は今GetDBUserListは、従業員

Public Class Employees Public Property value As Int64 Public Property text As String Public Property isdefault As Int32 End Class

のリストを返します

@(Html.Kendo().DropDownList. Name("ddlUsers"). DataTextField("text"). HtmlAttributes(New With {.style = "width:500px"}). DataValueField("id"). DataSource(Sub(s) s.Read(Sub(r) r.Action("GetUserList", "Employees") End Sub). ServerFiltering(True) End Sub).Events(Sub(e) e.Change("SetHiddenUGID")))

私のビューであります

私はisdefaultに基づいてドロップダウンのデフォルト値を1に設定したいと思いますか?

私は

var dropdownlist = $("#ddlUsers").data("kendoDropDownList");

dropdownlist.select(function (dataItem) { if (dataItem.isdefault === 1) { $("#ddlUsers").data("kendoDropDownList").value(dataItem.id); } });

を試してみましたが、しかし、それは動作しませんでした。

+0

ビューにモデルがありますか? (つまり、上の@model MyModel) –

答えて

0

DropDownListがリモートデータにバインドされているため、の値をの後に設定すると、データの読み取り処理が返されます。

したがって、DropDownListのdataBoundイベントでデフォルトアイテムを選択するコードを追加する必要があります。これは、そのポイントまで選択するデータがないためです。

しかし、あなたの関数は値をdataItem.idに設定しようとしています...あなたのモデルにはidフィールドがありません。これはvalue、text、およびisdefaultを持ちます。

また、DropDownList select()メソッドは、jQueryセレクタ、インデックス、またはブール値(http://docs.telerik.com/kendo-ui/api/javascript/ui/dropdownlist#methods-select)を返す関数を使用します。関数は何も返さないので、何も選択されません。

は、DropDownListコントロールのデータバインドされたイベントでこれをやってみてください。

dataBound: function(e) { 
    var data = e.sender.dataSource.data(); 

    e.sender.select(function (dataItem) { 
     return (dataItem.isdefault === 1); 
    }); 
} 

ここで働い例です:http://dojo.telerik.com/@Stephen/inUKI それはjavascriptの初期設定を使用しますが、あなたは簡単にカミソリの初期化にデータバインドされたイベントハンドラを追加することができます。

関連する問題