自定义jqgrid的一些小技巧(二)

1.jqgrid动态显示隐藏某一列。例如我们不想要那个方框列,用来勾选的多选框列,而想添加一个序号列,从1到n的自增列,那么就可以这样做:

jQuery(user_selector).setGridParam().hideCol("cb").trigger("reloadGrid"); //隐藏
jQuery("#grid_id").setGridParam().showCol("cb").trigger("reloadGrid");//显示

     其中hideCol和showCol方法的参数是列名,对于数据填充列,就是你后台传过来的实体的字段,对于多选框这种系统列隐藏列就要通过浏览器控制台来找,经过查找发现多选框列的列名字段为“cb”,即checkbox的缩写,相应的序号列的列名字段为“rn",你可以打开浏览器控制台把每一列都试试。


2.显示序号列要在jqgrid加上一个属性:

rownumbers: true,// 显示序列号

   此时序号列是可以正常显示了,但是序号列的表头没有标题”序号“两个字,而是空的,看上去不舒服,那么下一个小技巧就是为任意列设置标签。


3.为序号列设置标签:

// 为序号列添加标题
jQuery(user_selector).jqGrid('setLabel','rn', '序号', {'text-align':'center','vertical-align':'middle'},'');

    其中“rn”为序号列列名字段,‘序号’为要设置的中文名,紧接着是标签的样式,最后一个参数是properties,用来设置label属性,具体可以搜索setLabel方法了解更多

    显示效果:

  

    有一个问题是虽然序号列添加了“序号”两字,但是跟其他列不对齐,其他列都是垂直居中,但是刚设置的序号两字是底端对齐的,通过上面的setLabel方法设置样式不生效,那就要通过浏览器控制台找到这个元素的属性来自定义设置:

// 让序列号标签文字垂直居中
$("#jqgh_grid-table-user_rn").css("padding-bottom","75%");

    经过查看发现序号列标签元素为如上所示的,我这里设置的样式不一定适合你,关键是要找对元素,自己调样式


4.不想要滚动条上面的列宽,例如想去掉下面红框所示滚动条上面的宽度


    解决方法:jqgrid有一个属性设置列宽为零

scrollOffset: 0, // 滚动条宽度

   不过你要注意了,如果你的jqgrid存在水平滚动条,那么设置这个属性不会生效,所以必须先去掉水平滚动条:

$("#grid-table").closest(".ui-jqgrid-bdiv").css({ 'overflow-x' : 'hidden' });// 隐藏水平滚动条

    另外隐藏垂直滚动条也一样:

$("#grid-table").closest(".ui-jqgrid-hdiv").css({ 'overflow-y' : 'hidden' });// 隐藏垂直滚动条

  

   下一篇继续

   

    参考博客:https://blog.csdn.net/dusea/article/details/49365865

                    https://blog.csdn.net/jobfyz/article/details/78251735

                    https://ask.csdn.net/questions/363052#answer_541322


猜你喜欢

转载自blog.csdn.net/lvyuan1234/article/details/79803702
今日推荐