陈粒在蓬莱百度网盘云谁有啊 可以发到我百度云吗 账号是Charlo9 因为我打不开你们发的链接

本帖子已过去太久远了,不再提供回复功能。今天在做系统的功能时,当时有这么个需求:在添加了一行数据时,原本的排序的自动就不能再排序,也就是排序失效。
1. 使用onSortCol事件禁止排序列
当时使用了初始化时,使用onSortCol事件在初始化的时候,如果发现了添加行的标记为true的情况,就返回&stop&(返回stop之后列排序就失效了)。
然后出现了一个问题,排序功能确实是被禁止掉了,但是排序的上下箭头还是依然顽强的工作,此种方法带了操作上的困扰。
2. 单独禁止掉指定的方法
在网上搜索了一阵之后,jqgrid确实提供了禁止列排序的方法,可以在需要的地方调用。
1 //disable sorting of grid
2 var grid = $("# your jqgrid id");
4 //get all column names
5 var columnNames = grid[0].p.colN
7 //iterate through each and disable
8 for (i = 0; i & columnNames. i++) {
grid.setColProp(columnNames[i], { sortable: false });
这段代码,是执行不成功,因为colNames取得是显示的列名,其实项目中datafield设置的都是其它的名字,在colModel里面就是index的值,所以得如下改法:
1 //disable sorting of grid
2 var grid = $("# your jqgrid id");
4 //get all column names
5 var columnNames = grid.jqGrid('getGridParam','colModel');
7 //iterate through each and disable
8 for (i = 0; i & columnNames. i++) {
grid.setColProp(columnNames[i].index, { sortable: false });
以上的代码的效果:1. 排序功能被禁止。 2. 列头的排序图标如果有的话点击也是不变化的。&
其它代码片段:
1 var columnNames = grid[0].p.colN
2 colNames=$("#UsersGrid").jqGrid('getGridParam','colNames')
4 var columnNames = grid[0].p.colM
5 colModel=$("#UsersGrid").jqGrid('getGridParam','colModel')
& & & jqgrid的特性还是非常棒,在发现问题的时候一般的情况下从jqgrid的设计角度都会有相对应的解决方法的。
阅读(...) 评论()关于displaytag分页组件的排序功能,麻烦熟悉的朋友帮忙解答下,谢谢 - ITeye问答
displaytag我用的是1.1版本.
问题描述如下:
displaytag分页组件中要使得列能够排序,只需要在&display:column/&中设置sortable="true"即可。
这样子他就会按照默认的property属性内容进行排序,此时点击页面上的表头就可以实现排序
我看了表头的连接是这样子的
http://localhost:8088/xxxx/sysViewBtnController.do?sort=id&dir=asc&method=getListPage
排序字段参数名是sort 排序类型是asc这些都是displaytag自动封装的。
然后我在后台request里获取这两个参数,再拼装到我的SQL里面,就实现了数据的排序
此时页面的数据按照sort=id&dir=asc进行了一次排序,我想再点击id列进行desc排序就不行了。
问题:我该如何实现反复点击列头能做升序和降序呢。
采纳的答案
你只要设置了相关属性它就会自动排序的,它是前台排序的,不用把参数传给后台吧
sortable属性设为true,则表示对该列支持排序(前台排序),显示出的该列的标题上会自动带有下划线,点击可排序
displaytag分页排序的原理是把需要分页和排序的数据全部读出到页面上,然后再分页,你后台用request取它的参数木有啥用的。它是基于页面的分页排序,如果数据很多的话是不建议使用的
已解决问题
未解决问题c# datagridview点击列头排序改为以数值大小排序 - 推酷
c# datagridview点击列头排序改为以数值大小排序
1.在使用&DataGridView时,对于数值列,默认的排序方式仍然是按照字符串方式进行
如果需要按照数值型进行排序,有几种办法,其中一种就是重载SortCompare方法
//重载_SortCompare方法
&private void DataGridView1_SortCompare(object sender,DataGridViewSortCompareE
ventArgs e)
&如果是学号或成绩列,则按浮点数处理
&if(e.Column.Name==&学号&|| e.Column.Name==&成绩&)
&e.SortResult = (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) & 0) ? 1 : (Convert.ToDouble(e.CellValue1) - Convert.ToDouble(e.CellValue2) & 0)?-1:0;
&//否则,按字符串比较
&e.SortResult = pare(Convert.ToString(e.CellValue1), Convert.ToString(e.CellValue2));
&// 如果发现两行相同,则按学号排序&
&if (e.SortResult == 0 && e.Column.Name != &学号&)
&e.SortResult = Convert.ToInt32(DataGridView1.Rows[e.RowIndex1].Cells[&学号&].Value.ToString()) -
&Convert.ToInt32(DataGridView1.Rows[e.RowIndex2].Cells[&学号&].Value.ToString());
&e.Handled =//不能省掉,不然没效果
2.DataGridView 列有三种排序模式。每一列的排序模式是通过该列的 SortMode 属性指定的,该属性可以设置为以下的 DataGridViewColumnSortMode 枚举值之一。&
DataGridViewColumnSortMode 值说明;&
Automatic&
文本框列的默认排序模式。除非将列标头用于选择,否则单击列标头将自动按此列对 DataGridView 排序,并显示一个指示排序顺序的标志符号。&
NotSortable&
非文本框列的默认排序模式。可以以编程方式对此列排序;但此列不适合排序,因此未为排序标志符号保留空间。&
Programmatic&
可以以编程方式对此列排序;而且为排序标志符号保留了空间。&
如果默认为 NotSortable 的列包含的值可以有意义地排序,您可能希望更改该列的排序模式。例如,如果有一个数据库列包含表示项状态的 数字,则可以通过将一个图像列绑定到该数据库列来将这些数字显示为相应的图标。然后可以在 System.Windows.Forms.DataGridView.CellFormatting 事件的处理程序中,将数值单元格值更改为图像显示值。在这种情况下,将 SortMode 属性设置为 Automatic 会使用户能够对该列排序。自动排序将使用户能够对具有相同状态的项分组,即 使这些对应于数字的状态没有自然的顺序。复选框列也是自动排序对于将处于相同状态的项分组很有用的示例。&
可以以编程方式按任一列或多列中的值对 DataGridView 排序,而不论 SortMode 设置如何。当希望为排序提供自己的用户界面 (UI) 时,或者当希望实现自定义排序时,以编程方式排序很有用。提供自己的排序用户界面非常有用,例如,在设置 DataGridView 选择模 式以启用列标头选择时。在这种情况下,虽然列标头不能用于排序,但是仍希望标头显示相应的排序标志符号,因此将 SortMode 属性设置为 Programmatic。&
设置为编程排序模式的列不会自动显示排序标志符号。对于这些列,必须通过设置 System.Windows.Forms.DataGridViewColumnHeaderCell.SortGlyphDirection 属性 来手动显示标志符号。为了在自定义排序中能够灵活操作,这是必需的。例如,如果按多列对 DataGridView 排序,则可能希望显示多个排序标志符 号或不显示任何标志符号。&
虽然可以以编程方式按任一列对 DataGridView 排序,但是一些列(如按钮列)可能不包含可以有意义地排序的值。对于这些列,NotSortable 的 SortMode 属性设置指示将永不使用这些列排序,因此不需要在标头中为标志符号保留空间。&
对于已排序的 DataGridView,可以通过检查 SortedColumn 和 SortOrder 属性的值确定排序列和排序顺序。这些值在自定义排序操作之后没有意义。有关自定义排序的更多信息,请参见本主题后面的“自定义排序”部分。&
对包含绑定列和未绑定列的 DataGridView 控件排序时,未绑定列中的值无法自动维护。若要维护这些值,必须通过将 VirtualMode 属性设置为 true 和处理 CellValueNeeded 和 CellValuePushed 事件实现虚拟模式。有 关更多信息,请参见如何:在 Windows 窗体 DataGridView 控件中实现虚拟模式。在绑定模式下按未绑定列进行排序不受支持。&
以编程方式进行排序&
可以通过调用 DataGridView 的 Sort 方法以编程方式对其排序。&
Sort 方法的 Sort(DataGridViewColumn,ListSortDirection) 重载采用 DataGridViewColumn 和 ListSortDirection 枚举值作为参数。当按列值可以有意义地排序(但不想将该列配置为用于 自动排序)的列排序时,此重载很有用。当调用此重载并传入具有 System.Windows.Forms.DataGridViewColumnSortMode.Automatic 的 SortMode 属性值的列时,会自动设置 SortedColumn 和 SortOrder 属性并在列标头中显示相应的排序标志符号。&
当通过设置 DataSource 属性将 DataGridView 控件绑定到外部数据源时,Sort (DataGridViewColumn,ListSortDirection) 方法重载不能用于未绑定列。此外,当 VirtualMode 属性为 true 时,可以仅为绑定列调用此重载。若要确定某一列是否为数据绑定列,请检查 IsDataBound 属性值。在绑定模式下对未绑定列排序不受 支持。&
自定义排序&
可以通过使用 Sort 方法的 Sort(IComparer) 重载或通过处理 SortCompare 事件来自定义 DataGridView。&
Sort(IComparer) 方法重载采用一个实现 IComparer 接口的类的一个实例作为参数。当希望提供自定义排序时,此重载很有 用;例如,当某一列中的值没有自然排序顺序时,或者当自然排序顺序不适用时。在这种情况下,不能使用自动排序,但是可能仍然希望用户通过单击列标头进行排 序。可以在 ColumnHeaderMouseClick 事件的处理程序中调用此重载,即使不使用列标头进行选择。&
仅当 DataGridView 控件未绑定到外部数据源且 VirtualMode 属性值为 false 时,Sort (IComparer) 方法重载才起作用。若要为绑定到外部数据源的列自定义排序,必须使用由该数据源提供的排序操作。在虚拟模式中,必须为未绑定列提 供您自己的排序操作。&
若要使用 Sort(IComparer) 方法重载,必须创建您自己的类,该类实现 IComparer 接口。此接口要求您的类实现 System.pare(System.Object,System.Object) 方法,在调用 Sort(IComparer) 方法重载时,DataGridView 将 DataGridViewRow 对象作为输入传给该方法。使用此方法,您可以基于任一列中的值计算正确的行排序。&
Sort(IComparer) 方法重载不设置 SortedColumn 和 SortOrder 属性,因此必须总是设置 System.Windows.Forms.DataGridViewColumnHeaderCell.SortGlyphDirection 属性以显示排序标志符号。&
作为 Sort(IComparer) 方法重载的一个替代方法,可以通过为 SortCompare 事件实现处理程序来提供自定义排序。当用 户单击为自动排序配置的列的标头时,或者当调用 Sort 方法的 Sort(DataGridViewColumn, ListSortDirection) 重载时,将发生此事件。对控件中的每对行均发生该事件,这使您能够计算它们的正确顺序。&
当 DataSource 属性已设置时,或者当 VirtualMode 属性值为 true 时,不会发生 SortCompare 事件
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 陈粒在蓬莱百度网盘 的文章

 

随机推荐