easyui的datagrid 在js中如何隐藏table字段

西米12 2013-11-29 10:44:34
我想做成根据不同搜索条件,显示不同的字段。 有用过$('#devList').datagrid("hideColumn","unit_name");这种的可是非常卡


<script>
function searchGrid(){ }


</script>
<html>
类型:<input name=""/>
<a class="easyui-linkbutton" iconCls="icon-search" onClick="searchGrid()">搜索</a>
<table title="信息设备列表" id="devList" url="<%=path%>/dev_getD.action">
<th rowspan="2" field="dev_type" align="left" width="100">设备类别</th>
<th rowspan="2" field="dev_name" align="left"width="100">设备名称</th>
<th rowspan="2" field="dev_type1" align="left" width="100">设备类型</th>
<th rowspan="2" field="dev_mfrs" align="left" width="100">设备厂家</th>
<th field="A">A</th>
<th field="B">B</th>
<th field="C">C</th>
<th field="D">D</th>
<th field="E">E</th>
</table>
</html>
...全文
1621 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
西米12 2013-12-06
  • 打赏
  • 举报
回复
可以了,谢谢
  • 打赏
  • 举报
回复
要显示或者隐藏的所有列都要在columns配置过,默认第一次不显示的列可以通过配置column项的hidden:true来控制 要不没配置过当然无法控制是否显示隐藏
西米12 2013-12-02
  • 打赏
  • 举报
回复
是这样写吗? $(function(){ $("#devList").datagrid({ onLoadSuccess:function(){ if(document.all.dev_type.value=='A'){ $('#devList').datagrid("showColum","A"); alert("ttt"); $('#devList').datagrid("hideColumn","un"); } if(document.all.dev_type.value=='数字监控'){ $('#devList').datagrid("hideColumn","unit_code"); $('#devList').datagrid("hideColumn","dev_buy_time"); $('#devList').datagrid("hideColumn","dev_qty"); $('#devList').datagrid("hideColumn","unit_property"); $('#devList').datagrid("hideColumn","contact_name"); $('#devList').datagrid("hideColumn","contact_tel"); } 第一次搜索时可以隐藏,可是第二次搜索,如果有第一次搜索中没有的列,就显示不出来。这是为什么?
  • 打赏
  • 举报
回复
引用 7 楼 u011915463 的回复:
onLoadSuccess好像不能用,onLoadSuccess是要写在$(function(){}),$(function(){})是第一次加载时用到的,但是我的隐藏是在搜索时使用,搜索不会重新加载$(function(){})里面的内容,对吗? 我是新手不会用专业术语
onLoadSuccess这个是datagrid的事件,每次数据源更改加载到datagrid都会触发的$(function(){})只执行一次,这个是jquery注册的DOM加载完毕的事件,和datagrid无关
西米12 2013-11-30
  • 打赏
  • 举报
回复
onLoadSuccess好像不能用,onLoadSuccess是要写在$(function(){}),$(function(){})是第一次加载时用到的,但是我的隐藏是在搜索时使用,搜索不会重新加载$(function(){})里面的内容,对吗? 我是新手不会用专业术语
西米12 2013-11-29
  • 打赏
  • 举报
回复
不行呀 我是这样写的对吗? searchGrid(){ if(document.all.dev_type.value=='A'){ $('#devList').each(function(){$(this).find('td:eq(20)').hide()}) }}
  • 打赏
  • 举报
回复
jquery直接操作DOM实现隐藏显示试试,你需要明确知道那列所在列下标

下面实现隐藏第二列(下标从0开始)

$('.datagrid-view2 tr').each(function(){$(this).find('td:eq(1)').hide()})
西米12 2013-11-29
  • 打赏
  • 举报
回复
具体怎么写,我是新手,不太懂
  • 打赏
  • 举报
回复
引用 4 楼 u011915463 的回复:
不行啊,我把列改成0,和1也不行。 我那样写语法有错吗
如果你那个方法动态加载了数据源,要给datagrid配置onLoadSuccess事件,在事件里面进行隐藏
西米12 2013-11-29
  • 打赏
  • 举报
回复
不行啊,我把列改成0,和1也不行。 我那样写语法有错吗
  • 打赏
  • 举报
回复
$('#devList').each(function(){$(this).find('td:eq(20)').hide()}) 你的datagrid有21列?传递20就是隐藏第21列

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧