2016-09-17 20 views
0

私は剣道のUIグリッドと親グリッド内にネストされた子グリッドを持っています。子グリッドでポップアップ編集を行い、フィールドの1つとしてドロップダウンリストを選択すると、このドロップダウンから現在編集中の子グリッドのインスタンスにアクセスしたいと思います。剣道のUIアクセス詳細エディタのウィジェットからのグリッドインスタンス

(すべての子グリッドが同じIDを取得するため)子グリッドにidを指定することは明らかに不可能です。私は、最も簡単に行うことができません。

var childGrid = $("#myChildGridCurrentlyEdited").data("kendoGrid"); 

私は何を取得したいが、それが持っているものの要素をチェックするために、現在編集子グリッドから観察可能な配列です。私は助けていただければ幸いです。ちょうどjsFiddleをここでチェックしてください。細部にIDを設定するには、サイドノートで

edit: function(arg) { 
    arg.container 
     .find("[name=ageEdit]").data("kendoDropDownList").bind("select", function(j) { 
      var detailGrid = arg.sender; 
}); 

:あなたはfind the DropDownListbindにそのselectハンドラを詳細グリッドのeditイベントを使用することができます

https://jsfiddle.net/Turo/7a0LLrdf/1/


function initDetail(e) { 
    $("<div/>").appendTo(e.detailCell).kendoGrid({ 
    dataSource: [{gender: "male",height: "2m", ageEdit: {Id: 1, Age: 40}}, 
    {gender: "female",height: "1.6m", ageEdit: {Id: 2, Age: 50}}], 
    columns: [ 
    {field: "gender"}, 
    { field: "height"}, 
    {field:"ageEdit", template: "#= ageEdit.Age #", editor: editAge}, 
    {command: ["edit"]}], 
    editable: {mode: "popup"} 
    }) 
} 

function editAge(container, options){ 
    $('<input required name="ageEdit"/>') 
    .appendTo(container) 
    .kendoDropDownList({ 
    dataTextField: "Age", 
    dataValueField: "Id", 
    dataSource: [{Id: 1, Age: 20}, {Id: 2, Age: 30}], 
    select: function(e){ 
     alert("how do I get to the detail grid instance from here?") 
    } 
}) 
} 

答えて

1

グリッドでは、それぞれのマスター行のID値を使用します。これは、例えば0イベント:

$("<div id='detail-grid-" + e.data.id + "'></div>").appendTo()... 

マスターグリッドは、そうでない場合は、あなたが代わりにidのIDフィールド名を使用する必要があり、作業にe.data.idためdataSource.schema.model.idで定義されたIDフィールドを持っている必要があります。

+1

ありがとう、私は実際にyesteday朝、素晴らしい答えに似た結論に来ることができました。 – Turo

関連する問題