
功能需求描述如下:
A主頁面,在datagrid的某行上,操作列,點擊詳情,Tab頁面上加載B頁面
B頁面,左邊是樹tree,右邊是左邊樹的詳情列表
要求:由A頁面鏈接到B頁面,B頁面的tree,默認選中第一個節點,並點擊第一個節點,來加載右邊的datagrid
在B頁面的datagrid某行上,操作列,點擊編輯,彈出窗口加載C頁面
C頁面修改樹的該節點信息,點保存
保存成功,刷新左邊樹結構reload,並選中剛選中的節點,就是回顯
在A頁面,要打開B頁面的方法里傳遞參數,標志B頁面是不是第一次打開,是第一次打開就默認選中並點擊第一個節點
localStorage.setItem('first', true);
在B頁面,加載樹tree
tree = $('#tree').tree({
url : url,
parentField : 'pid',
lines : true,
onClick : function(node) {//點擊觸發查詢
//TODO 獲取點擊的節點及各子節點id,組成數組
dataGrid.datagrid('load', $.serializeObject($('#searchForm')));
//一旦點擊節點,把第一次打開的標志first置為false
first="false";
},
onLoadSuccess : function(row,data){
//默認選中第一個節點,相當於手動點擊
if(first == "true"){
$("#organizationTree li:eq(0)").find("div").addClass("tree-node-selected"); //設置第一個節點高亮
var n = $("#organizationTree").tree("getSelected");
if(n!=null){
$("#organizationTree").tree("select",n.target); //相當於默認點擊了一下第一個節點,執行onSelect方法
}
data[0].target.click();
}else{
if(treeSelectNode){
$("#organizationTree").tree("select",treeSelectNode.target);
}
}
}
});
在B頁面,編輯方法要彈出C頁面方法時,獲取左邊樹的選中節點
treeSelectNode = JSON.stringify($("#organizationTree").tree("getSelected"));
在C頁面,保存成功時,只用刷新樹即可
parent.$.modalDialog.openner_tree.tree('reload');
