2017-04-21 123 views
1

這是我當前的網格和detailExpand/Databind。您會看到我試圖獲取uid,然後在數據綁定觸發後展開該行。未定義expandedRowUid控制檯日誌。有人可以幫助我正確地獲得uid或提供替代解決方案,以便一旦觸發了數據綁定,細節網格不會崩潰或在數據綁定後再次展開。在數據綁定後保留kendo細節網格

function teacherHierarchyGrid() { 
     $("#teacherGrid").kendoGrid({ 
      detailInit: detailInit, 
      selectable: true, 
      dataBound: function() { 
      console.log("Bind occured") 
      this.expandRow($('tr[data-uid=' + expandedRowUid + ']')); 
      }, 
      detailExpand: function (e) 
      expandedRowUid = e.masterRow.data('uid'); 
      console.log(expandedRowUid) 
     }, 
    }) 
    } 

**編輯**新代碼仍然沒有工作

var expandedRow; 
    function teacherHierarchyGrid() { 
     $("#teacherGrid").kendoGrid({ 
      detailInit: detailInit, 
      selectable: true, 
      autoBind: false, 
      dataBound: function(e){ 
       if (expandedRow) { 
        console.log(expandedRow); 
        e.sender.expandRow($('tr[data-uid=' + expandedRow + ']')); 
      } 
      }, 
      detailExpand: function (e) { 
       expandedRow = e.sender.dataItem(e.masterRow).uid; 
      }, 
     }) 
    } 
+0

是否希望自動展開所有詳細信息行?如果是這樣,[檢查此鏈接](http://www.telerik.com/forums/how-to-auto-expand-all-detail-rows-in-a-kendo-grid-#Y7UlVX19GE2_ZUsfXFr8kg) – Sandman

回答

0

首先,它可能是由於在detailExpand功能缺乏{}日誌未定義:

detailExpand: function (e) { 
      expandedRowUid = e.masterRow.data('uid'); 
      console.log(expandedRowUid); 
      } 

二中dataBound函數console.log("Bind occured")

第三可能是uid a在重新創建行之後,聯合到該行的行不一樣:在數據綁定之後,同一行可能具有不同的uid,因爲該小部件會生成該行。嘗試引用該行以擴展數據項ID。

+0

仍然沒有擴大該行。我確實注意到dataBind事件被激發了兩次,所以我一定要讓autoBind爲false。發表我的當前代碼 –

+0

我爲我的錯誤道歉:第三點不是真的,通過這個關鍵字,你實際上選擇了網格小部件。問題在於,在重新創建行之後,uid可能不會相同:在數據綁定之後,同一行可能會有不同的uid。嘗試引用該行以擴展數據項ID。如果你提供的代碼是你定義的數據源,我可以幫助你進一步。 –