1

親子 Telerik MVC グリッドがあります。子グリッドには ComboBox があります。そのコンボ ボックスの OnChange イベントで、何かの値を検索し、この編集された行に別の列を設定する必要があります。この子グリッドに既に子行がある場合、次のコードは親行の dataItem オブジェクトを取得するために機能します。ただし、子行がない場合 (最初の行を追加するだけです)、これは機能しません。

function ComboBox_OnChangeg(e) 
{
    var comboID = $("#combo").data('tComboBox').value();
    var parentID = row.closest('.t-grid').data('tGrid').data[0].ParentID;  // <--- IS NOT AN OBJECT!!!

    // ajax call, blah blah
}

子グリッドに子行がない場合、親の dataItem オブジェクトを取得し、親行の列の値を取得するにはどうすればよいですか?

注意: これは、インライン編集中のグリッド内の ComboBox の OnChange イベントです。これは、グリッドの OnEdit イベントではありません。

スティーブ

4

1 に答える 1

1

ページ ソースを調べたところ、詳細グリッドがtrマスター行に続くテーブル全体にまたがるセルにレンダリングされていることがわかりましたtr。そう:

  1. クラスで最も近いtr祖先を取得するt-detail-row
  2. trクラスを持つ最も近い前の兄弟を見つけるt-master-row
  3. trステップ 2 で見つかったdataItemものをマスター グリッドのクライアント側メソッドに渡します。

    var $masterRow = $comboElement.closest('tr.t-detail-row').prev('tr.t-master-row');

    var masterData = $('#LieuLeconGrid').data('tGrid').dataItem($masterRow);

于 2012-06-29T11:16:41.400 に答える