2014-01-10 177 views
0

我想獲取jqGrid樹中某行的parentId。下面是示例代碼jqGrid TreeGrid找到節點的父節點

beforeSelectRow: function (rowid, e) { 
    var $this = $(this); 

    var localData = $this.jqGrid("getLocalRow", rowid); 

    var parentNode = $this.jqGrid("getNodeParent", localData); 
} 

我得到parentNode爲對象,但如果我試圖讓alert(parentNode.id),則返回null ..

我錯了在這裏做什麼?

+0

應該警惕(parentNode.attr(「身份證」))或警報(parentNode [0] .ID),因爲parentNode是jQuery對象 –

+0

感謝您的回覆。 alert(parentNode.attr('id'))或alert(parentNode [0] .id)給出錯誤「找不到未定義的ID」... alert(parentNode)返回:[object object] –

回答

0

可能區分大小寫?

alert(parentNode.ID) 

我相信你正在使用的jqGrid(3.7)的舊版本,因爲( 「getNodeParent」)都不再像版本3.7.x(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:treegrid)的工作。 你可以嘗試使用:

var record = $(」#grid_id」).getRowData(rowid); console.log(record.ID)

,而不是如果你正在使用的jqGrid的新版本。

+0

感謝您的迴應。我使用的是最新版本的jqgrid(4.x.),並且這兩種方法都可以通過getNodeParent或getRowData來獲得id工作,console.log(record.ID)也可以正常工作,但是我想獲得父行的ID ..我該怎麼做? –

+0

我不知道我是否遵循。但是如果你現在使用rowid和grid,爲什麼不使用'$(「#grid_id」)。find('#'+ record);' –

0

我想你只需要使用parent財產localDatalocalData.parent。這是父節點的id。順便說一下,節點的id通常會保存在_id_屬性中(因此localData._id_rowid相同,dataOfParentNode._id_localData.parent相同)。爲了得到父節點的完整數據,可以使用getLocalRow代替getNodeParent

beforeSelectRow: function (rowid, e) { 
    var $this = $(this), 
     localData = $this.jqGrid("getLocalRow", rowid), 
     dataOfParentNode = $this.jqGrid("getLocalRow", localData.parent); 
    ... 
    return true; 
}