jqgrid 中设置列不排序

背景

今天在做系统的功能时,当时有这么个需求:在添加了一行数据时,原本的排序的自动就不能再排序,也就是排序失效。

1. 使用onSortCol事件禁止排序列

当时使用了初始化时,使用onSortCol事件在初始化的时候,如果发现了添加行的标记为true的情况,就返回“stop”(返回stop之后列排序就失效了)。

然后出现了一个问题,排序功能确实是被禁止掉了,但是排序的上下箭头还是依然顽强的工作,此种方法带了操作上的困扰。

2. 单独禁止掉指定的方法

在网上搜索了一阵之后,jqgrid确实提供了禁止列排序的方法,可以在需要的地方调用。

 1 //disable sorting of grid
 2 var grid = $("# your jqgrid id");
 3
 4 //get all column names
 5 var columnNames = grid[0].p.colNames;
 6
 7 //iterate through each and disable
 8 for (i = 0; i < columnNames.length; i++) {
 9    grid.setColProp(columnNames[i], { sortable: false });
10 }

这段代码,是执行不成功,因为colNames取得是显示的列名,其实项目中datafield设置的都是其它的名字,在colModel里面就是index的值,所以得如下改法:

 1 //disable sorting of grid
 2 var grid = $("# your jqgrid id");
 3
 4 //get all column names
 5 var columnNames = grid.jqGrid(‘getGridParam‘,‘colModel‘);
 6
 7 //iterate through each and disable
 8 for (i = 0; i < columnNames.length; i++) {
 9    grid.setColProp(columnNames[i].index, { sortable: false });
10 }

以上的代码的效果:1. 排序功能被禁止。 2. 列头的排序图标如果有的话点击也是不变化的。

其它代码片段:

1 var columnNames = grid[0].p.colNames;
2 colNames=$("#UsersGrid").jqGrid(‘getGridParam‘,‘colNames‘)
3
4 var columnNames = grid[0].p.colModel;
5 colModel=$("#UsersGrid").jqGrid(‘getGridParam‘,‘colModel‘)

总结

jqgrid的特性还是非常棒,在发现问题的时候一般的情况下从jqgrid的设计角度都会有相对应的解决方法的。

时间: 2024-12-19 13:22:16

jqgrid 中设置列不排序的相关文章

pb数据窗口下拉数据窗口列的排序(翻译)

datawindow是一个功能强大而且扩展性很强的工具,一个非常好的功能能够让用户点击列头对datawindow中的列进行排序. 排序功能还允许你指定列对数据窗口进行排序,这个功能对大多数的列都能够使用,但是他却不能对有下拉数据窗口列进行排序.原因就是 这个排序的功能是通过列的值进行排序的而不是显示值. 解决这个问题的的办法是可以使用LookUpDisplay这个函数,这个功能能够返回列的显示的值,通过对lookupdisplay(列名)这个函数排序, 数据窗口就能对这个显示值进行排序了. dw

css样式表中设置table的第一列的宽度是固定值

table{table-layout:fixed;}table tr td:first-child,table tr td:first-child{width:120px;} 首行第一个td定宽同列的宽度都会和他一样. *注意 第一行 第一个用的是 td 还是 th css样式表中设置table的第一列的宽度是固定值,布布扣,bubuko.com

Jquery Ajax 异步设置Table中某列的值

可根据table中某列中的ID去改变某列的值! JS: 1 $(document).ready(function () { 2 setTimeout(GetDate, 1000); 3 4 }); 5 6 function GetDate() { 7 $("#tbData tbody").find("tr").each(function () { 8 var prjectBalanceObj = $(this).find("td:eq(3)");

Dev gridView中设置自适应列宽和日期显示格式、金额的显示格式

在Dev GridView控件中,数据库中表数据日期都是长日期格式(yyyy-MM-dd HH:mm:ss),但显示在控件变成短日期格式(yyyy-MM-dd),金额显示要显示精确的数值, 比如80.00,90.15等,但在 dev gridView中只是显示80,90 1.解决日期显示问题的代码: 设置日期的displayformat,editFormat,EditMask /// <summary>        /// 设置时间显示格式        /// </summary&g

WPF:设置DataGrid中DataGridColumn列的普通样式和编辑样式

WPF:设置DataGrid中DataGridColumn列的普通样式和编辑样式 时间:2012-02-01 20:28来源:博客园 作者:刘圆圆 点击:1570次 0:DataGridColumn类型的继承树 DataGridColumn的派生类: 一般情况下DataGridBoundColumn和DataGridComboBoxColumn足以满足多数列的样式,如果需要自定义列样式,则可以使用DataGridTemplateColumn类型. 在设置列编辑样式之前,我们先创建一个简单的Dat

discuz 修改亮剑积分商城2.91模板(在常用设置中添加商场首页排序方式的背景颜色)

在应用 -> 积分商城 -> 常用设置 中添加 商场首页排序方式 的背景颜色修改功能 步骤: 1.找到并打开此页面对应的模板source\plugin\aljsc\template\setting.htm 2.复制红色方块内的代码粘贴到方框底下: 3.将粘贴中的 c1 全部替换成 c2 和buttonbackcolor 替换成 linkbuttonbackcolor:保存即可,注意 排 是utf-8编码 <tr><td s="1" class="

iview 表格 某一列中设置radio

在iview 表格 某一列中设置radio,说白了还是要在render中添加,方法为: { title: '业务参数设置', // key: 'pyCode', align: 'center', render:(h, params) => { return h( "RadioGroup", { props: { value: params.row.status*1==1?'可以':'不可以' }, on: { "on-change":(val) => {

jqGrid中prmNames,jsonReader,colModel的参数简介

1,prmNames 前端向服务端发送的参数 jsonReader : {       root: "rows",   // json中代表实际模型数据的入口        page: "page",   // json中代表当前页码的数据        total: "total", // json中代表页码总数的数据        records: "records", // json中代表数据行总数的数据        

【Bootstrap3.0建站笔记三】AspNetPager分页,每一列都可排序

1.AspNetPager分页,实现每一列都可排序: (1).需要将默认排序字段放在HTML页面中. (2).排序字段放置为td节点的属性. 如图: 实现的效果图如: HTML代码: <div class="row"> <div class="col-lg-12 col-sm-12 col-xs-12 col-xxs-12"> <table class="table table-striped table-hover tabl