欢迎来到HELLO素材网! 南京网站制作选择顺炫科技
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > JS教程 >

FlexiGrid的asp.net完美解决方案

发表于2017-11-24 19:10| 次阅读| 来源网络整理| 作者session

摘要:JQuery-FlexiGrid的asp.net完美解决方案-dotNetFlexGrid使用指南-二)服务端查询、快速查询和Html模板

JQuery FlexiGrid的asp.net完美解决方案-dotNetFlexGrid使用 指南(二)服务端查询、快速查询和Html模板 1. 开始之前,看下最新的v1.2版本有些什么 修复快速查询时的键盘回车事件与控件外围事件的冲突的问题。 修复快速查询时设置正则表达式时可能导致的语法错误的问题。 数据提供方法DataHandler将不再强制要求与列的绑定顺序?致,现在通过返回 的DataTable中的ColumnName自动绑定到合适的列,所以,请保证您的DataTable和控 件中的列名?致(区分大小写)。 增加展现模板的功能,现InitConfig初始化时针对列配置增加了?个itemTemplate属性, 该属性提供了当前列的展现模板设定。 演示项目中FirstGrid.aspx增加了客户端刷新、服务端刷新和快速查询功能的演示。 演示项目中TestTemplate.aspx提供了使用展现模板的演示。 最主要的,通过template,可以随意定制每个格子的展现内容,比如说在表格中显示文 本框、单选按钮、图片等,相信很多朋友会感兴趣吧。 快速查询和服务端查询还有Template 我们继续开始,这?次我们完善我们的FirstGrid,为其添加服务端查询的效果和快速查询。 ?般而言,.net程序员更善于在界面中设定?个数据的筛选条件,然后通过PostBack在后台生成 数据集并展示,上?章节我们演示了如何进行客户端的查询,这里,我们回归传统,使用服务端 查询来实现筛选功能。 最简单的,我们为页面添加?个TextBox和Button,像下面这样: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="服务端查询演示" OnClick="Button1_Click" /> 我们为按钮添加OnClick事件Button1_Click,完善事件代码和dotNetFlexGrid数据提供方法: ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// protected void Button1_Click(ob ject sender, EventArgs e) { dotNetFlexGrid1.DefaultSearch.Add("String1", TextBox1.Text);//使用String1这个字段进行查询 } DotNetFlexGrid1DataHandler中新增的代码: //处理默认查询,即Button1_Click中指定的DefaultSearch查询参数 if (p .defaultSearch.ContainsKey("String1")) { System.Data.DataView dv = result.tab le.DefaultView; dv.RowFilter = "String1 Like '%" + p .defaultSearch["String1"] + "%'"; result.tab le = dv.ToTable(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 为什么不在Button1_Click执行查询操作呢,大家回顾下,我们的控件实际上是?个全异步 的(Ajax)工作方式,实际上我们也希望数据的更新能够最小化,最轻量级;与知名的AjaxPro ?样,我们在异步请求时完全没有实例化整个页面,而仅仅针对数据提供方法DataHandler进行 调用,这样回避了Asp.net Form的大量的模型构建的逻辑,只是需要返回表格数据而已;这样做 ,导致了?个问题,如何给DataHandler提供参数; 我们通过defaultSearch和extParam来解决它。 这里例子中,我们在按钮点击时提供了?个名为String1的DefaultSearch,在DataHandler中检测 这个参数并执行合适的查询;如之前?样,还是用DataView进行模拟,实际应用中,您需要根据 您的需求执行数据查询的操作。 好了,服务端查询每次都会刷新页面重新加载数据,而客户端查询则不需 要这样。 我们在应用场景中,?般会提供?个数据的范围筛选,您可以使用上述的方法实现,有时候还会 在上述的筛选范围内进行快速的定位或再?次筛选,比如说我们提供日期范围筛选数据,然后提 供在这个范围内定位某?个地址的需求。 dotNetGrid提供了继承自Jquery FlexiGrid的快速查询的功能,如下演示: 其实很简单,重新找到您的初始化表格InitConfig的代码,改成下面这样 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// this.dotNetFlexGrid1.InitConfig( new string[]{ "selectedonclick=true",//是否点击行自动选中checkbox "usepager=true",//使用分页器 "showcheckbox=false",//显示复选框 "height=200",//高度,可为auto或具体px值 "width=600"//宽度,可为auto或具体px值 }, new dotNetFlexGrid.FieldConfig[]{ new dotNetFlexGrid.FieldConfig("Guid","编号",60,true,dotNetFlexGrid.FieldConfigAlign.Left), new dotNetFlexGrid.FieldConfig("String1","用户名",180,true,dotNetFlexGrid.FieldConfigAlign.Right), new dotNetFlexGrid.FieldConfig("String2","地址",180,true,dotNetFlexGrid.FieldConfigAlign.Left), new dotNetFlexGrid.FieldConfig("String3","创建时间",60,true,dotNetFlexGrid.FieldConfigAlign.Left) }, new dotNetFlexGrid.SerchParamConfig[]{ new dotNetFl