碰到的每个问题, 我都会记下走过的弯路,尽量回忆白天的开发过程, 尽量完整, 以使自己以后可以避开这些弯路。

这个问题在系统中应用得比较多, 在一个gridpanel的工具条上有俩搜索框, panel加载和工具条查询按钮查询的功能。主要涉及store的filter功能。

  • 客户端的filter

  在stoer load前,先clearFilter(因为在每点一次查询, filter项中就会多一组查询条件, 导致查询有误), 然后stoer.filter[{property: '',value''},{}];,然后再store.loadPage(1, function(*,*,success){});在回调函数中, 可以判断success为false时,加载失败的处理方法

  这种方法的问题就是filter在数据加载完后, 会在客户端再筛选一次, 比如有三个用户a, a1, na, 查询框中输入a, 查询出来后会显示总数三条, 但界面上只显示2条, 因为na这个用户被过滤掉了, 开始的时候没有注意,被这个问题耽搁了好长时间。

  • remoteFilter

  远程filter在测试中发现与客户端唯一的区别就是在加载数据后, 不会在客户端再次筛选一次。但是这种方法的问题就是在每次添加filter条件时, 会自动的去服务器获取数据, 而且没有回调函数, 防止不了会话失效等的情况, 所以这种方法也不适用

  • 客户端filer

  根据以前经验,在没有解决方法时, 就老老实实看文档, 终于发现一个属性:filterOnLoad默认为true, 在数据加载后, 触发filter运行, 哈哈, 把这个属性设置为false, 客户端就没有上面问题啦, 可以正常使用

提交的filter在服务器端的处理:

public JsonResult ListUser(string filter, int start, int limit)
{
JavaScriptSerializer serialier = new JavaScriptSerializer();
var json = serialier.Deserialize<List<FilterObj>>(filter);
}

哇, 这样就把filter字串解析为对象了, 说明一下FilterObj是有二个成员的类, 分别为public string property{get;set;} public string value{get;set;}

NSS_07 extjs中grid在工具条上的查询的更多相关文章

  1. iOS开发小技巧--微博项目中的键盘工具条

    微博项目中的键盘工具条 项目中的键盘工具条不能使用inputAccessoryView,因为inputAccessoryView不能实现键盘隐藏的时候,工具条还显示在眼前,如图: 所以,果断决定将工具 ...

  2. EXTJS中grid的数据特殊显示,不同窗口的数据传递

    //EXTJS中grid的数据特殊显示renderer : function(value, metaData, record, rowIndex, colIndex, store, view) { v ...

  3. CAD隐藏或显示工具条上的按钮(com接口VB语言)

    主要用到函数说明: MxDrawXCustomFunction::Mx_HideToolBarControl 隐藏或显示工具条上的按钮.详细说明如下: 参数 说明 IN LPCTSTR pszTool ...

  4. Extjs中grid前端分页使用PagingMemoryProxy【二】

        在项目中遇到Grid前端分页,本人也是刚接触extjs没多久,为了实现效果,一直找了很久才实现出来,对于代码中的一些也不能详细的说明出来, 不知道能不能帮助到遇到同样问题的朋友,所以将例子代码 ...

  5. Extjs中grid表格中去掉红三角

    在编辑Extjs的gridpanel的时候,数据有错误或是修改在每个单元格上都会出现红色的小三角,在每个列上面可以配置allowBlank: false来标识这个不可以为空 有的时候在保存数据时如果不 ...

  6. NSS_04 extjs中grid接收datetime类型参数列

    今天在做用户列表时发现, asp.net mvc3的控制器在返回JsonResult结果时, 会把对象内的DateTime类型成员,解析为类似于\/Date(1238606590509)\/的格式 , ...

  7. Extjs中grid行的上移和下移

    一.将up和down按钮放到tbar中,然后选中grid行即可实现上移和下移 var up = new Ext.Action({ text : 'Up', icon : 'up.png',//或者添加 ...

  8. extjs中grid中行内文本或图片居中显示

    我是看了网上写的方法调试自己的代码来实现的,实现的方式是当加载store数据时改变grid的行样式,源码如下: html代码: <div id="weatherP_grid-body& ...

  9. Extjs中grid 的ColumnModel 属性配置

    一, 用数组的方式配置ColumnModel var colModel = new Ext.grid.ColumnModel([ { header:'编号', dataIndex:'id',width ...

随机推荐

  1. google使用技巧

  2. 解决CSDN的code功能,无法git clone多个项目的问题

    几天前在使用CSDN的git功能的时候发现一个问题:我在CSDN上创建了两个项目,但是却只能git clone其中的一个. 原因: 在添加ssh公钥的时候,将主机上的ssh公钥在CSDN上填的地方不合 ...

  3. LeetCode33 Search in Rotated Sorted Array

    题目: Suppose a sorted array is rotated at some pivot unknown to you beforehand. (i.e., 0 1 2 4 5 6 7  ...

  4. IOS 免受xib自动布局影响

    1.适配苹果手机  iPhone 4 ,4s 一个xib  iPhone 5 5s xib   以后iPhone6一个xib 2.再根据ios6 和 ios7 进行 微调 就是状态栏的那个问题 3.# ...

  5. [Java] HashMap的用法

    重点介绍HashMap.首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.在下文中会 ...

  6. hadoop中hbase出现的问题

    在安装hbase中出现问题如下: ERROR: Can't get master address from ZooKeeper; znode data == null 解决办法: 1.删除nameno ...

  7. Java基础知识强化104:Serializable接口 与 Parcelable接口

    1. 什么是 序列化 和 反序列化 ?     序列化 :序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化.可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间.序 ...

  8. Java基础知识强化之IO流笔记81:NIO之 DatagramChannel

    1. Java NIO中的DatagramChannel是一个能收发UDP包的通道.因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入.它发送和接收的是数据包. 2. DatagramCh ...

  9. web开发人员须知的web缓存知识–将数据缓存到浏览器端Net实现

    现实中,服务器在向浏览器发送的数据中,一部分数据是不经常更新的,如果能将这部分数据缓存到浏览器端,将会大大降低传输的数据,提高应用的性能.通过Expires策略,可以使用HTTP 协议定义的缓存机制将 ...

  10. android基础学习之布局

    我学习android第一步接触的就是布局的学习.布局是androidUI的基础,是重中之重.总的来说android有6种布局,分别是线性布局LinearLayout.相对布局RelativeLayou ...