2016-07-19 9 views
3

私は剣道のコントロール(特にGridDrop Down Lists)を扱っています。機能が初めて起動しない

ダブルクリックイベントの剣道グリッドコンポーネントにはハンドラが組み込まれていないので、これを回避するためにJQueryをコーディングしました。

ブラウザコンソールを調べると、ダブルクリックイベントがトリガされ、グリッドから抽出された関連するデータ項目が表示されます。

問題はダブルクリック機能内から呼び出されたapplySelectionsにあります。選択した行のデータに基づいて、6つの剣道ドロップダウンから値をあらかじめ選択します。これに続いて、関連するフィルタを適用するために、各ドロップダウンリストのchangeイベントをトリガーします。

$(document).ready(function() { 
    var grid = $("#grid").data("kendoGrid"); 
    grid.tbody.on("dblclick", "tr", function (e) { 
     var test = grid.dataItem(this); 
     applySelections(grid.dataItem(this));    
    }); 

    function applySelections(item) { 
     $('#ddl1').data('kendoDropDownList').select(function (dataItem) { 
      return dataItem.ID === item.subItems[0].ID; 
     }); 
     $('#ddl2').data('kendoDropDownList').select(function (dataItem) { 
      return dataItem.ID === item.subItems[1].ID; 
     }); 
     $('#ddl3').data('kendoDropDownList').select(function (dataItem) { 
      return dataItem.ID === item.subItems[2].ID; 
     }); 
     $('#ddl4').data('kendoDropDownList').select(function (dataItem) { 
      return dataItem.ID === item.subItems[3].ID; 
     }); 
     $('#ddl5').data('kendoDropDownList').select(function (dataItem) { 
      return dataItem.ID === item.subItems[4].ID; 
     }); 
     $('#ddl6').data('kendoDropDownList').select(function (dataItem) { 
      return dataItem.ID === item.subItems[5].ID; 
     }); 

     $("#ddl1").data("kendoDropDownList").trigger("change"); 
     $("#ddl2").data("kendoDropDownList").trigger("change"); 
     $("#ddl3").data("kendoDropDownList").trigger("change"); 
     $("#ddl4").data("kendoDropDownList").trigger("change"); 
     $("#ddl5").data("kendoDropDownList").trigger("change"); 
     $("#ddl6").data("kendoDropDownList").trigger("change"); 
    } 
} 

最初のダブルクリックでは、コードをトレースして、実行中の最初のダブルクリック機能を確認できます。しかし、applySelectionsファンクション内のselectイベントのいずれもトリガされません。次回は、ドロップダウンごとに同じコードが実行され、期待される結果が観察されます。

+1

良い仕事そう... upvoteあなたのため... – DiniZx

+1

優秀な仕事はこれまで..それを維持、Uはそこに行きます#信じる(Upvoteあなたのため) –

+1

ファンタスティックな仕事のラボ。点灯しておいてください。 –

答えて

1

さらに検査した後、溶液は比較的まっすぐ前方に(明らかに)判明した。ドロップダウンコントロールautoBindの値はfalseに設定されていました。これは、私のselectイベントには何もなかったことを意味します。select

var ddl1 = $("#ddl1").kendoDropDownList({ 
    autoBind: false 
    ... 
}).data("kendoDropDownList"); 

をする:変更

var ddl1 = $("#ddl1").kendoDropDownList({ 
    autoBind: true 
    ... 
}).data("kendoDropDownList"); 

ドロップダウンコントロールのそれぞれのためには、ページの読み込みに移入するdataSourceを余儀なくされました。

まだ存在していない要素を選択しようとすると、Webブラウザのエラーが表示されないことに驚いています。

+0

よろしくお願いします....あなたのためにアップル... –

関連する問題