Telerik MVC Grid:在内联编辑期间获取ComboBox OnChange事件后获取父行

时间:2011-10-07 02:01:11

标签: asp.net-mvc telerik-grid telerik-mvc telerik-combobox

我有一个父子Telerik MVC网格。在子网格中,我有一个ComboBox。在该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事件。

史蒂夫

1 个答案:

答案 0 :(得分:1)

检查页面源,我发现详细网格是在主行tr之后的tr上放置的整个表跨单元格中呈现的。所以:

  1. 与班级tr
  2. 获得最接近的t-detail-row祖先
  3. 找到与班级tr
  4. 最近的上一个同级t-master-row
  5. 将第2步中找到的tr传递给主网格的dataItem客户端方法

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

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