SNF快捷支付平台MVC-高级查询组件

1.1.      注意事项

① 、尽管多表查询的高档查询,须要将flagSession定义为false,并且在controller中定义的目的中,把每一列定义为
表名.列名

如图,画框部分为相应利用的写法

 图片 1

图 2.5

 

二 、3个页面多个表格用到高级查询时,如若有三个表格需求在同一controller中开始展览尖端查询的调用,请将逐一表格的id值取成差别的,无论是不是出现在同一cshtml页面中。调用时,每一报表需在图2.5的GetAdvancedQueryColumns方法中单独添加一段查询条件的代码。如,大家还有3个id为gridlist的表格也要举行尖端查询,那么就在return的前一行加上如下代码:

list.Add(new KeyValuePair<string, object>(“gridlist”, new
object[]{

        new string[]{ “DemoSingleTable.Code”, “编号”, “validatebox” },

        new object[]{ “DropDownSingle”, “数据字典”, “combobox”,
this.GetItemsListCategoryBs(“ItemsGender”, “ItemCode”, “ItemName”)},

        //new object[]{ “a”, “a”, “combotree”, 
SNFService.Instance.BaseItemDetailsService.GetDataTable(this.UserInfo,
“ItemsTreeTest”)},

        new string[]{ “Num”, “数量”, “numberbox”, “min:0,precision:2”
},

        new string[]{ “Money”, “金额”, “numberspinner”,
“min:0,precision:2” },

        new string[]{ “IsCheckbox”, “复选框”, “checkbox” },

        new string[]{ “DateBox”, “日期”, “daterange” },

        new string[]{ “ApproveState”, “状态”, “lookup”,
“lookupType:’ItemsAuditStatus'” }

    }));

 


作者: 王金斗
出处: http://www.cnblogs.com/spring_wang/
Email: spring_best@yeah.net
QQ:903639067 
QQ群:322581894

 这么些体系教程文书档案,欢迎转发:

SNF连忙支付平台WinForm-CS甘特图http://www.cnblogs.com/spring_wang/p/7418423.html

SNF急迅支付平台MVC-审核流,审核实现后会给下三个审核人发邮件,下2个审核人能够不记名系统,在邮件里进行查随地理http://www.cnblogs.com/spring_wang/p/7418402.html

SNF急迅支付平台MVC-名片管理(实际名片样式) http://www.cnblogs.com/spring_wang/p/7416540.html

SNF快捷支付平台MVC-表格单元格合并组件http://www.cnblogs.com/spring_wang/p/7416368.html

SNF快捷支付平台MVC-单据状态水印http://www.cnblogs.com/spring_wang/p/7416349.html

SNF火速支付平台MVC-瀑布式分页组件http://www.cnblogs.com/spring_wang/p/7411116.html

SNF飞速支付平台MVC-高级查询组件http://www.cnblogs.com/spring_wang/p/7411113.html

SNF飞速支付平台MVC-自由排序组件http://www.cnblogs.com/spring_wang/p/7411090.html

SNF火速支付平台MVC-各样级联绑定格局,演示样例程序(包蕴表单和表格控件)http://www.cnblogs.com/spring_wang/p/7405371.html

SNF火速支付平台MVC-集成了百度开源项目echarshttp://www.cnblogs.com/spring_wang/p/7405171.html

SNF急迅支付平台WinForm-平板拍照及扫描二维码作用http://www.cnblogs.com/spring_wang/p/7404600.html

SNF神速支付平台WinForm平整引擎整体介绍及使用http://www.cnblogs.com/spring\_wang/p/7404182.html

SNF火速支付平台WinForm-Grid表格控件大全http://www.cnblogs.com/spring_wang/p/7403881.html

SNF快捷支付平台WinForm-表单验证控件-通用http://www.cnblogs.com/spring_wang/p/7403750.html

SNF.CodeGenerator-升级生成BS页面代码-帮助视图-数据库配置-快捷开发者的利器http://www.cnblogs.com/spring_wang/p/7402612.html

SNF快捷支付平台WinForm-审核流使用方法样例http://www.cnblogs.com/spring_wang/p/7374176.html

SNF快捷支付平台WinForm-EasyQuery总括分析-效果-拾壹分牛逼的报表查询工具http://www.cnblogs.com/spring_wang/p/7366059.html

SNF飞速支付平台MVC-Grid++集成打字与印刷http://www.cnblogs.com/spring_wang/p/7365567.html

SNF连忙支付平台MVC-富文本控件集成了百度开源项目editorhttp://www.cnblogs.com/spring_wang/p/7365265.html

C#按回车Enter使输入主旨自动跳到下二个TextBox的点子收集http://www.cnblogs.com/spring_wang/p/7216538.html

至于系统前端开发的那2个事http://www.cnblogs.com/spring_wang/p/7092721.html

WebApi和MVC-controller层接收的json字符串的取值方法和调用后台服务情势http://www.cnblogs.com/spring_wang/p/6740314.html

SNF火速支付平台–规则引擎在程序在那之中怎么着调用http://www.cnblogs.com/spring_wang/p/6740490.html

SNF快捷支付平台–规则引擎介绍和应用文书档案http://www.cnblogs.com/spring_wang/p/6740445.html

SNF连忙支付平台MVC-EasyUI3.9之-DataGrid表格控件怎么样扩展右键菜单http://www.cnblogs.com/spring_wang/p/6740338.html

SNF快速支付平台–多协会+多平台+多系统处理方案http://www.cnblogs.com/spring_wang/p/6734654.html

SNF神速支付平台MVC-EasyUI3.9之-Session过期处理和页面请求筛选http://www.cnblogs.com/spring_wang/p/6733975.html

SNF快捷支付平台MVC-EasyUI3.9之-WebApi身份验证难点消除方案http://www.cnblogs.com/spring_wang/p/6733814.html

SNF迅速支付平台MVC-EasyUI3.9之-WebApi跨域处理方案http://www.cnblogs.com/spring_wang/p/6733659.html

SNF快捷支付平台MVC-EasyUI3.9之-ueditor富文本编辑在 asp.net
MVC下使用手续
http://www.cnblogs.com/spring_wang/p/6710351.html

SNF开发平台WinForm之十五-时间轴控件使用-http://www.cnblogs.com/spring\_wang/p/6285393.html

SNF开发平台WinForm之十四-站内发送系统音讯http://www.cnblogs.com/spring\_wang/p/6140031.html

SNF开发平台WinForm之十三-单独从服务器上获得PDF文件实行体现http://www.cnblogs.com/spring_wang/p/6140025.html

SNF开发平台WinForm之十二-发送手机短信作用调用http://www.cnblogs.com/spring_wang/p/6139829.html

SNF开发平台WinForm之十一-程序打包http://www.cnblogs.com/spring_wang/p/6139827.html

SNF开发平台WinForm之十-Excel导入http://www.cnblogs.com/spring_wang/p/6128604.html

SNF开发平台WinForm之九-代码生成器使用验证http://www.cnblogs.com/spring_wang/p/6128595.html

SNF开发平台WinForm之八-自动升级程序安排使用表明http://www.cnblogs.com/spring_wang/p/6128570.html

SNF开发平台WinForm之七-单据打字与印刷和平运动用验证http://www.cnblogs.com/spring_wang/p/6126016.html

SNF开发平台WinForm之六-上传下载组件使用http://www.cnblogs.com/spring\_wang/p/6125929.html

SNF开发平台WinForm之五-高级查询利用表明-http://www.cnblogs.com/spring\_wang/p/6116640.html

SNF开发平台WinForm之四-开发-主细表管理页面-http://www.cnblogs.com/spring\_wang/p/6116626.html

SNF开发平台WinForm之三-开发-单表选取控件成立-http://www.cnblogs.com/spring\_wang/p/6116592.html

SNF开发平台WinForm之二-开发-单表表单管理页面-http://www.cnblogs.com/spring\_wang/p/6116572.html

SNF开发平台WinForm之一-开发-单表表格编辑管理页面-http://www.cnblogs.com/spring\_wang/p/6116523.html

Winform开发框架之通用Windows摄像头调用拍照http://www.cnblogs.com/spring_wang/p/6008674.html

Winform开发框架之图表报表在线设计器2-图表-SNF.EasyQuery项目–SNF飞快支付平台3.3-Spring.Net.Framework

Winform开发框架之图表报表在线设计器-报表-SNF.EasyQuery项目–SNF急迅支付平台3.3-Spring.Net.Framework

Winform开发框架之通用附属类小部件管理模块
–SNF飞快支付平台3.3-Spring.Net.Framework

SNFAutoupdater通用自动升级组件V2.0-WinForm

SNF快速支付平台3.2之–.Net可扩展的票子编号生成器-SNF.CodeRule

SNF快捷支付平台3.1之–审核流(3)低调奢华,不难不凡,实例演示-SNF.WorkFlow

SNF快捷支付平台3.1之–审核流(2)流程设计-SNF.WorkFlow效能使用验证

SNF急速支付平台3.1之–审核流(1)SNF.WorkFlow审核流简介

SNF急迅支付平台3.0之–完美的代码生成器SNF.CodeGenerator-连忙开发者的利器

传闻MVC4+EasyUI的Web开发框架–Spring.Net.FrameworkV3.0一体化介绍

SNF快速支付平台3.0之–MVC
打字与印刷消除方案

SNF火速支付平台3.0之–文件批量上传-统一附属类小部件管理器-在线预览文件(有互连网和尚未二种)

SNF连忙支付平台3.0之–asp.net mvc4
强大的导出和不必要上传文件的批量导入EXCEL

SNF连忙支付平台3.0之MVC通用控件库体现-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF急忙支付平台3.0之BS页面展现和九大优点-部分页面展现效果-Asp.net+MVC4.0+WebAPI+EasyUI
+Knockout

SNF快速支付平台3.0之-界面特性化配置+10种皮肤+7种菜单-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout

SNF火速支付平台3.0之-CS页面-Asp.net+Spring.Net.Framework

SNF赶快支付平台3.0之–系统里播放的作用–连忙及时、简明扼要的把音信发送给接收者

1.2.1.    添加高级查询的集体js引用

    <script
src=”~/Content/js/core/common.advanced_query.js”></script>

1.2.4.    借使不供给赶快查询栏

经过此种方式可独自添加三个高档查询按钮,首先定义三个按钮,标签添加属性data-bind=”click:advancedQueryClick”

this.advancedQueryClick=function(){

   
//只供给高级查询按钮,不须求快捷查询栏时,调用此方法,参数如下,种种参数含义可参照2.2.3

    snf.AdvancedQueryButtonClick({

        gridName:”grid”,

        grid :self.grid,

        _url:
“/DEMO/DemoSingleTableAdvancedQuery/DemoSingleTableAdvancedQuery”,

        searchFunc :self.executeQueryClick,

        flagSession :true,

        //GridViewName:”grid”

    });

}

1.   高级查询

在我们做项目标时候时不时想要按名称、编号进行查询数据,可在支付时会把最常用的询问条件写上,不常用的就不写了,也是因为把持有字段都写上太多了,布局不好看而且不实用。还有个别查询条件几百年用那么一遍,也无法用到时调整一下顺序。基于这个考虑大家做的2个高档查询组件,可以把具有列都作为查询条件,把最常用的询问条件还常常放在页面上。点击高级查询按钮后,会有所以列作为筛选标准方便开始展览查找,别假设这次条件比较多还足以保存起来为多个询问方案,下次时方可一本万利再一次查询。

1.2.2.    定义查询事件

在概念查询的表格对象后,定义查询事件。上面的self.grid是datagrid的绑定对象。

this.executeQueryClick = function (post){

    self.grid.queryParams($.extend(ko.toJS(self.queryForm), post));

}

1.2.7.    demo样例

次第路径:

/DEMO/ DemoSingleTableAdvancedQuery /DemoSingleTableAdvancedQuery

可在先后中依照此路径扩充菜单查看

1.2.6.    在controller里的询问办法扩展拼接查询条件的法门

SNFService.Instance.CreateService<BaseUserQuerysService,
IBaseUserQuerysService>().GetParamQueryById(UserInfo, request, ref
pQuery);

如图

 图片 2

图 2.4

1.1.      效果展示图片 3

图 2.1

尖端查询页面 

图片 4

图 2.2

高等查询管理页面图片 5 

图 2.3

1.2.3.    给表格绑定高级查询

通过上边包车型客车主意得以绑定高级查询,能够自动生成高速查询栏以及高档查询、清空的按钮

 

//通过拼html的不二法门,把选中的grid放进一个layout的center中,上方添加贰个north,里边渲染火速查询方案以及方案计划的按钮

//_param = {

    //gridName:”grid” //datagrid的id值

    //grid:self.grid //必要高级查询的datagrid绑定对象

   
//_url:”/DEMO/德姆oSingleTableAdvancedQuery/德姆oSingleTableAdvancedQuery”
//当前页面路径

    //searchFunc:self.executeQueryClick
//对应viewModel中的this.executeQueryClick方法

    //flagSession:false
//true表示从页面读取datagrid的editor属性自动生成查询列,false表示手动填入查询列

    //flagCollapsed:true //true加载时查询栏展开,false表示合死,暗中同意true

    //GridViewName:”grid”
//使用数据库中GridViewName存入值为GridViewName的数量进行尖端查询,方便对现有数据开始展览处理,以及与cs程序互通。暗中同意等于gridName,如为此值赋值,注意要同时修改controller中的查询列绑定值

//}

snf.advancedQueryLayout({

    gridName:”grid”,

    grid :self.grid,

    _url:
“/DEMO/DemoSingleTableAdvancedQuery/DemoSingleTableAdvancedQuery”,

    searchFunc :self.executeQueryClick,

    flagSession :false,

    flagCollapsed: true

    //GridViewName:”grid”

});

此措施应该在定义self.grid之后调用!

1.2.5.    添加高级查询条件

flagSession=true时,会一直从editor中读取高级查询条件,借使flagSession=false,则要手动在controller中添加查询条件,代码如下

#region 获取高级查询的控件类型

 [MvcMenuFilter(false)]

public dynamic GetAdvancedQueryColumns(RequestWrapper request)

{

    var list = new List<KeyValuePair<string, object>>();

    list.Add(new KeyValuePair<string, object>(“grid”, new
object[]{

        new string[]{ “DemoSingleTable.Code”, “编号”, “validatebox” },

        new object[]{ “DropDownSingle”, “数据字典”, “combobox”,
this.GetItemsListCategoryBs(“ItemsGender”, “ItemCode”, “ItemName”)},

        //new object[]{ “a”, “a”, “combotree”, 
SNFService.Instance.BaseItemDetailsService.GetDataTable(this.UserInfo,
“ItemsTreeTest”)},

        new string[]{ “Num”, “数量”, “numberbox”, “min:0,precision:2”
},

        new string[]{ “Money”, “金额”, “numberspinner”,
“min:0,precision:2” },

        new string[]{ “IsCheckbox”, “复选框”, “checkbox” },

        new string[]{ “DateBox”, “日期”, “daterange” },

        new string[]{ “ApproveState”, “状态”, “lookup”,
“lookupType:’ItemsAuditStatus'” }

    }));

    return list.Find(s => s.Key == request[“GridViewName”]).Value;

}

#endregion

 

此措施应写在BaseApiController的接轨类下

里头参数

list是四个列表,里边能够涵盖五个键值对,各样键都对应着一个报表控件。

各样键值对代表1个报表的高等查询绑定,键值对的key是绑定高级查询的报表的id值,键值对的value是二个object对象,包蕴对应表格的任何的高档查询所需的询问条件。此方法会自动依照表格id进行匹配,再次来到当前表格高级查询所需的询问条件列表。每一个重返的询问条件对象中,可遵照实际情况包罗三到多个元素,首要控件类型不一致有所区分。

留意:js在那之中advancedQueryClick方法的参数gridName与地方方法list的key值”grid”还有request[“GridViewName”]要保持一致。

第二个因素:列名。对应数据库中的字段,多表查询时可输入表名.列名,如德姆oSingleTable.Code

第三个因素:查询条件普通话名,如:编号

其多少个因素:控件类型,以后协理validatebox(文本框),combobox(下拉),

numberbox(数字框),numberspinner(数字微调框),checkbox(复选框),daterange(日期范围),lookup(弹框控件),combotree(下拉树)

第多少个要素:扩张属性,对combobox、combotree来说,首个值传下拉需求出示的数据源;对numberbox,numberspinner,lookup来说,第多少个要素之间写easyui控件的data-options里边供给填写的始末即可(能够参考easyui1.3.2的api);validatebox,daterange,checkbox不需求第11个因素

1.2.      调用表明