datagrid放在隐藏层不显示数据的问题

<div id="userDiv" style="display:none;">
     <table id="detailUser" class="easyui-datagrid" style="width: 100%;">
	 <thead data-options="frozen:true,">
	        <tr>
		<th width="15%" data-options="align:'center',field:'userName'">用户名</th>
		<th width="35%"	data-options="align:'center',field:'roleNames',formatter: renderRole">所属角色</th>
		<th width="10%" data-options="align:'center',field:'deptName',">部门</th>
		<th width="15%"	data-options="align:'center',field:'profession'">专业</th>
		<th width="10%" data-options="align:'center',field:'city',">地市</th>
		<th width="10%" data-options="align:'center',field:'district'">区县</th>
	        </tr>
         </thead>
     </table>
</div>

把datagrid放在隐藏层中,动作触发的时候让这个隐藏层show,但是并没有显示出数据,firebugs显示后台传递过来一条数据,只是datagrid没有加载出来

$("#detailUser").datagrid({
		url:"${basePath}grid/userList?role=ROLE_USER&gridId="+id,
		nowrap:false,
		rownumbers:true,
		fit:true,
		idField:'id',
		singleSelect:true,
		pagination:true,
		method:'post',
		loadMsg:'加载中...',
		emptyMsg:'暂无数据',
});
$('#userDiv').show();		
$('#gridDetail').window('open');

上图主要是因为fit:true这个属性与隐藏层的冲突。如果把fit:true去掉。则显示为下图,比上图稍微好些,只是数据还是没有显示出来

然后就百度了一下,有些说是应该把datagrid重新resize一下,

$("#detailUser").datagrid({
			url:"${basePath}grid/userList?role=ROLE_USER&gridId="+id,
			nowrap:false,
			rownumbers:true,
			idField:'id',
			singleSelect:true,
			pagination:true,
			loadMsg:'加载中...',
			emptyMsg:'暂无数据',
});
$("#detailUser").datagrid("resize");
$('#resourceDiv').hide();
$('#userDiv').show();		
可是我按照上边代码试了一下依然没有效果,原理的东西我探究不到,最后是给datagrid加了高度,才正常显示出数据

$("#detailUser").datagrid({
			url:"${basePath}grid/userList?role=ROLE_USER&gridId="+id,
			nowrap:false,
			rownumbers:true,
			height:540,
			idField:'id',
			singleSelect:true,
			pagination:true,
			loadMsg:'加载中...',
			emptyMsg:'暂无数据',
});
$('#resourceDiv').hide();
$('#userDiv').show();		

后来再次遇到在隐藏层中不显示数据的问题,然后我设置了高度,但是却怎么也显示不出来数据,于是又用了resize方法发现不是resize方法不管用,而是之前的放错位置了

图1

在不给datagrid设置高度的情况下,显示出来的如上图1,

$("#dg").datagrid("resize");
$('#task').show();
如上代码,显示效果依然如图1

但是如果将以上代码调换位置,即可正常显示

$('#task').show();
$("#dg").datagrid("resize");
图2
图3

并且利用resize可以根据数据显示的多少来调整高度,这样显示更灵活。如图2和图3所示


图4

图4为利用resize方法并且,给datagrid设置了固定高度之后的效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟茜

随多随少随你心意^-^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值