通用查询按钮客户化
通用查询展现时,默认显示“查询”和“重置”两个按钮。
- 查询按钮用于提交查询条件执行查询
- 重置按钮用于将页面上已输入的条件值重置清空
在实际使用时,用户可能会需要修改默认按钮。比如需要重写查询方法,以便在方法中处理业务需求,或者用户需要使用自定义的按钮实现查询和重置的功能等等。
开发者可以利用产品提供的接口,对通用查询上的按钮进行客户化,例如:
- 将默认的查询和重置按钮隐藏,使用自己定义的按钮触发查询和重置操作
- 点击“查询”按钮,或者实时触发“查询完成”后,执行用户指定的操作
js方法说明
通用查询默认生成的“查询”和“重置”按钮,在页面中的默认元素id分别为“queryBtn”和“resetBtn”,对应的click事件方法默认分别为submit2()和reset()。
submit2()
语法:submit2(iqs, callback)
参数说明:
- iqs - 是否是快速查询,值为true/false
- callback - 回调函数,注意该回调函数可以接收到当前查询条件值信息,查询条件信息格式:
{
"querys":{"args":"参数","macros":"宏,"sql":"SQL条件"},
"condition":{条件1:值1, 条件2:值2, ...}
}
返回值:无
reset()
语法:reset()
参数:无
返回值:无
客户化方法
在自定义的jsp页面中使用通用查询标签commtag调用通用查询时,必须在标签中配置jsObjectName标签属性的值。
该属性为commtag标签的唯一标识,如果一个页面有多个commtag也就是多个通用查询,则会根据jsObjectName属性值判断是调用哪一个通用查询的“查询”和”重置”方法。
标签中设置jsObjectName属性的方式可参考下面代码:
<commTag:commQryTag
jsObjectName="myCQ"
jsonContent="<%=commonQueryText%>"
params="<%=commonQueryParams%>"
/>
设置了jsObjectName属性后,页面上会根据该属性的值生成js对象。
比如按上面的设置,就会生成一个名为”myCQ”的js对象,该对象提供“查询”和“重置”两个对外方法。
这两个js方法的调用规则为:jsObjectName指定的js对象名.对外方法名。
比如按上面的配置时,调用方法为:myCQ.submit2(iqs)和myCQ.reset()。
此时,如果需要对按钮进行客户化,可按以下不同情况进行处理:
重写按钮默认方法
如果仍然使用默认的查询和重置按钮,但需要将查询和重置操作客户化,执行一些指定的业务操作,可以将默认的查询和重置按钮的click方法重写。
例如重写查询按钮click方法:
$("#queryBtn").click(function(){ //重写默认的查询按钮click方法,在方法中执行指定的业务操作
query.submit2(false,function(data){
… //用data进行查询
});
});
使用自己的按钮
如果需要使用自定义的按钮进行查询和重置,可以按照通用查询按钮显示与隐藏中的客户化方法,将默认的查询和重置按钮隐藏,然后为页面中自定义的按钮添加触发方法。
例如,在页面中自定义了一个id名为“myResetButton”的按钮,点击该按钮可以将通用查询的条件值重置清空:
$(myResetButton).click(function(){
myCQ.reset();
});
注意:通用查询标签如果使用参数属性(params标签属性)设置了查询条件的默认值,由于是在生成页面内容之前用params属性中的值替换了条件默认值,此时调用reset()方法重置后,条件值将仍为params属性中指定的值。params标签属性的使用,可参考:通用查询条件默认值设置。
场景示例一:使用自定义按钮调用查询和重置方法
示例1
调用query.submit2(false),获得查询条件内容,进行后续处理。
注意此处通用查询标签指定的jsObjectName属性为query,自定义按钮id为mySubmitButton。
示例代码:
$("#mySubmitButton").click(function(){
query.submit2(false,function(data){
… // 用data进行查询
});
});
上面代码中,返回的queryStr格式为:{args:参数值, macros:宏值, sql:SQL条件}
例如:{"args":"","macros":[],"sql":[{"dsName":"demo_sales","value":"订购日期='2009-01-08' and 城市='上海'"}]}
示例2
调用query.reset()方法,重置条件值。
注意此处通用查询标签指定的jsObjectName属性为query,自定义按钮id为myResetButton。
示例代码:
$("#myResetButton").click(function(){
query.reset();
});
注意:此方式添加的按钮不能添加在通用查询面板上,可添加至SR工具条中或者自定义的报表展现页面中。
场景示例二:重写默认查询和重置按钮的click方法,并做其他客户化处理
示例
重写查询按钮click方法:
$("#queryBtn").click(function(){
query.submit2(false,function(data){
… //执行客户化处理
});
});
重写重置按钮click方法:
$("#resetBtn").click(function(){
query.reset();
… // 执行客户化处理
});
参考DEMO
可将以下url地址中的ip、port端口号更改为应用实际部署的地址和端口后,进行访问查看对应demo。
http://ip:port/reportmis /mis2/commonQuery/demo/demo_query.jsp