1

次のような剣道ドロップダウンリストがある場合

@(Html.Kendo().DropDownList()
      .Name("products")
      .DataTextField("ProductName")
      .DataValueField("ProductID")
      .DataSource(source => {
          source.Read(read =>
          {
              read.Action("GetProducts", "Home");
          }); 
      })
)

これは、私のページが読み込まれるときに読み込まれます。javascriptを介してロードするように呼び出したときにのみロードされるようにコーディングする方法はありますか?

4

3 に答える 3

3

Read を実行せずに、サーバー側で DataSource を初期化します。たとえば、.DataSource(source => {source.Type = "json"})。クライアント側のイベント ハンドラーでは、ajax を使用して JSON データを取得し、次のようにドロップダウン リスト データソースにアタッチできます。

var dataretrieved = <ajax query here>
$("#products").data("kendoDropDownList").dataSource.data(dataretrieved );

あるいは、

サーバー側のコードでは、データソースを定義しません。クライアント側のイベント ハンドラーで、ドロップダウン リストのデータソースを定義します。たとえば、

$("#products").data("kendoDropDownList").dataSource = new kendo.data.DataSource({
 type: "json",
 data: dataretrieved 
});

データ型は、データソース定義の一部として示されていることに注意してください。

于 2013-03-20T21:33:56.987 に答える
2

ドロップダウンリストを開いたときに初めてデータをロードしたい場合は、次のように設定AutoBind = falseして追加できます。OptionLabel
@(Html.Kendo().DropDownList() .Name("products") .DataTextField("ProductName") .DataValueField("ProductID") .OptionLabel(new { ProductID = -1, ProductName= "Select Product"}) .DataSource(source => { source.Read(read => { read.Action("GetProducts", "Home"); }); }) .AutoBind(false) )

オプション ラベルはidとで必ず使用する必要nameがあります。そうしないと表示されません。

于 2014-02-27T18:05:21.090 に答える
-2

1 つの JS 関数を作成し、このコードをその中に入れます。必要なときにその関数を呼び出します。

于 2013-03-15T04:37:48.030 に答える