先汗一个,一个小功能又踢腾了一天。本来这个带Demo的,但是上面介绍的不是很详细。用的时候问题不大,主要问题在文件导入方面.以为这个插件的使用和其他的不一样。

1.首先是需要引入文件的位置:如图

需要把整个grid都考到vs下,vs中结构如下:

2.设置路径,将文件导入

Ext.Loader.setConfig({ enabled: true });
Ext.Loader.setPath('Ext.ux', '../ext-js4.2/ux');
Ext.require([
'*',
'Ext.toolbar.Paging',
'Ext.ux.grid.FiltersFeature',//必不可少的
'Scripts.*'
])

3.组织插件配置,这里你也可以将它组织成类

var filters = {
alias: 'widget.filters',
ftype: 'filters', encode: false, // json encode the filter query //指定要对哪些列进行过滤
filters: [{
type: 'boolean',
dataIndex: 'IsSuccessed'
}]
};

这里的filter的type有string,boolean,numeric,date,还有list。前四个很容易理解,第五个类似enum,就是列可供选择的常量值。

4.将插件放入gridpanel

features: [filters],

5.怎么在后台获取传入的值呢?

先看下筛选的时候都往后台传了什么:

这还只是 一条筛选,如果再几个条件更麻烦,解决方法如下:

//外层数据
public class ExtFilterInfo
{
public string Field { get; set; }
public ExtFilterData Data { get; set; }
} //内层数据
public class ExtFilterData
{
public string Type { get; set; }
public string Value { get; set; }
public string Comparison { get; set; }
}
模型数据绑定解析
 public class ExtFilterInfoModelBinder : DefaultModelBinder
{
public override object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var filter = (ExtFilterInfo)base.BindModel(controllerContext, bindingContext); var field = bindingContext.ValueProvider.GetValue(bindingContext.ModelName + "[field]");
if (field != null)
{
filter.Field = field.AttemptedValue;
}
var type = bindingContext.ValueProvider.GetValue(bindingContext.ModelName + "[data][type]");
var value = bindingContext.ValueProvider.GetValue(bindingContext.ModelName + "[data][value]");
var comparison = bindingContext.ValueProvider.GetValue(bindingContext.ModelName + "[data][comparison]");
if (filter.Data == null)
{
filter.Data = new ExtFilterData();
}
if (type != null)
{
filter.Data.Type = type.AttemptedValue;
}
if (value != null)
{
filter.Data.Value = value.AttemptedValue;
}
if (comparison != null)
{
filter.Data.Comparison = comparison.AttemptedValue;
}
return filter;
}
}

然后注册registered in Application_Start方法中(将下面代码放进去)

 ModelBinders.Binders.Add(typeof(Oland.HIP.WebAdmin.API.ExtFilterInfo), new Oland.HIP.WebAdmin.API.ExtFilterInfoModelBinder());

9.后台数据改怎么接受

public PageData<Monitor[]> Get([FromUri]string _dc, [FromUri] int page, [FromUri] int start, [FromUri] int limit, [FromUri] ExtFilterInfo[] filter)
{
}

OK,结束, 本来想给大家看看贴点数据呢,电脑卡的要死,就算了……,如果感觉对您有所帮助的话请点推荐,谢谢……

 

最新文章

  1. Linux 从零开始
  2. Bootstrap3 CSS样式基本用法总结
  3. HDU 4757 Tree(可持久化Trie+Tarjan离线LCA)
  4. SqlServer中decimal(numeric )、float 和 real 数据类型的区别[转]
  5. JSP中解决获取请求参数中文乱码问题
  6. Light OJ 1037 - Agent 47(预处理状态压缩DP)
  7. Android Timer的使用
  8. php.ini 全站,和htaccess web目录 默认头部和尾部 auto_prepend_file
  9. Apache设置404页面
  10. Adapter模式进行代码重构
  11. CSS3背景渐变。。。
  12. Linuxc - define 与 typedef的区别
  13. eclipse安装和中文汉化,以及配置
  14. (转)Spring Boot(九):定时任务
  15. photoshop学习2
  16. 发现一个强大的可视化第三方库pyecharts
  17. arch Linux(一)
  18. 201621123002《JAVA程序设计》第四周学习总结
  19. studio配置本地gradle-x.x.x-all.zip
  20. .NET Core 使用 EF 出错的解决方法

热门文章

  1. Latex 自定义命令:用于一些特殊单词的显示
  2. 简单的基于矩阵分解的推荐算法-PMF, NMF
  3. 使用Qt开发绘制多个设备的流量曲线图(附带项目图)
  4. MySQL:binlog 和 redo log
  5. python中的基本数值计算
  6. Linux - 基础命令汇总
  7. Angular使用总结 --- 通过指令动态添加组件
  8. Spark基础脚本入门实践2:基础开发
  9. 如何用java POI将word中的内容导入到mysql数据库中
  10. [视频]K8飞刀无代码编程之生成EXP