本人用Dialog做了一個彈出框,又在彈出框內展示的是樹形結構treegrid。
但是在樹形結構數據很多的時候,窗口並不會顯示右邊的滾動條,導致下面的都看不到。
經過研究發現dialog是在數據足夠多的時候自動顯示滾動條,但是我內置的treegrid height開始設置的小於了dialog 設置的 height,足夠多數據不能觸發dialog窗口;
結論是:把內置的樹形結構不設置height就好了。
有個缺點是,數據不多的時候也顯示滾動條,有路過的指點下吧。
代碼如下
HTML:
<div id="belongOrg_div">
<table id="belongOrgTreeGrid"></table>
</div>
JS:
function belongOrgTree(){//有事件觸發這個函數。
$("#belongOrg_div").dialog({
title: '放大鏡',
width: 620,
height: 505,
cache: false,
modal: true,
onClose: function(){
p.onClose.call();
$(this).remove();
}
});
//所屬單位放大鏡中的樹形結構
$("#belongOrgTreeGrid").treegrid({
//title : "單位信息",
width : "auto",
//height : 510,
nowrap : false,
rownumbers : true,
animate : true,
collapsible : false,
url : "${systemctx}/systemmanage/agency/queryTreeGridBelongOrg.json",
idField : "id",
treeField : "agencycodeandname",
frozenColumns : [ [ {
field : "agencycodeandname",
title : "單位編號",
width : 400
} ] ],
//columns : [[{field : "agencyname", title : "單位名稱", width:300 }]],
queryParams:{ORGLEVELCODE: $("#loginOrgLevelCode").val(),AGENCYNAME:$("#belongOrg").val()},
onBeforeLoad : function(row, param) {
showSending(); //正在執行...
$("#belongOrgH").val($("#belongOrg").val());
},
loadFilter:function(data,parentId){
closeSending(); //關閉執行...
closeSending(); //關閉執行...
//設置每行記錄的parentId
var rows = data.rows;
if(rows){
//若是采用了篩選查詢,就不進行上下級的樹形結構
if(rows[0].belongorglike!='-9'){
return data;
}
for(var i in rows){
if(rows[i].parentagencyid &&rows[i].agencylevel>rows[0].agencylevel)
rows[i]._parentId = rows[i].parentagencyid;
}
}
return data;
},
//雙擊一個節點進行選擇,並關閉
onDblClickRow: function(row){
if(row)
{
$("#belongOrg").val(row.agencycode);
$("#depositOrgName").val(row.agencyname);
$("#id_belongOrg").val(row.id);
$("#orgLevelCode").val(row.agencylevelcode);
if($("#belongOrgH").val()!=$("#belongOrg").val()){
$("#depositOrgNameView").text($("#depositOrgName").val());
}
$('#belongOrg_div').window('close');
}
},
onLoadSuccess : function(row, data) {
}
});
}