Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

在控件向服务器请求数据之前,通过脚本动态修改查询参数,实现特殊的查询需求

 

Image Added

 

【示例】

Code Block
languagejs
//浏览器控制台打印出query,这个变量是控件提交给服务器的查询参数,可以通过修改query里面的条件实现特殊查询
console.log(query);
var endDateStr = null;
var endDateIndex = -1;
//找出过滤条件中的日期
for(var i = 0; i < query.filterKeys.length; i++){
  if(query.filterKeys[i] === "日期"){ //这里请将日期修改为相应的字段名
    endDateStr = query.filterValues[i];
    endDateIndex = i;
	break;
  }
}
//将原来的 日期='2019-10-xx' 删除,增加 日期<='2019-10-xx'和日期>='2019-10-01'
if(endDateStr != null){
  query.filterKeys.splice(endDateIndex, 1);
  query.filterValues.splice(endDateIndex, 1);
  var fromDateStr = endDateStr.substr(0,7)+"-01"; //将  2019-10截取出来,拼装成 2019-10-01
  console.log("fromDateStr: "+fromDateStr);
  query.filterKeys.push("日期");  //这里请将日期修改为相应的字段名
  query.filterValues.push(" >='"+fromDateStr+"' ");
  query.filterKeys.push("日期");  //这里请将日期修改为相应的字段名
  query.filterValues.push(" <='"+endDateStr+"' ");
}
//再次打印query,在控制台看看是否修改成功,是否与其他字段冲突
//最后生成的sql就是  日期 >= '2019-10-01' and 日期 <= '2019-10-xx'
console.log(query);

...