获取表单中的参数数据集并查询

    在项目中某些模块进行查询时,可以通过form.findField('xxx');的方式一一获得表单参数,然后传递到后台进行查询。

    我们可以通过如下的方式获取,只需要调用prepareParamsFromForm 方法并将frm对象以及列表对象当做参数传递进去,即可实现对表单数据参数的赋值。
1、 获取表单数据
var prepareParamsFromForm = function(frm, store) {
 store.baseParams = {};

 var params = frm.getValues(true);
 // alert(params);

 var paramsArr = params.split("&");

 for (var i = 0; i < paramsArr.length; i++) {
  var paramsField = paramsArr[i].split("=")[0];
  var paramsValue = paramsArr[i].split("=")[1];
  if (!paramsValue || decodeURI(paramsValue) == "请选择") {
   continue;
  }

  paramsValue = decodeURI(paramsValue);
  // 替换所有%2C为逗号
  while ((paramsValue = paramsValue.replace('%2C', ',')).indexOf('%2C') != -1);

  if (store.baseParams[paramsField]) {
   store.baseParams[paramsField] += "," + paramsValue;
  } else {
   store.baseParams[paramsField] = paramsValue;
  }
 }
}

2、对表单数据进行了组装时候则需要调用updateGrid方法更新grid数据

updateGrid(grid, {
          start : 0,
          limit : 20
         }, function() {
          btn.enable();
         }); 

该公共方法的具体实现如下

var updateGrid = function(grid, params, callback) {
 emptyGrid(grid);

 var store = grid.getStore();
 var tbar = grid.getTopToolbar();
 var bbar = grid.getBottomToolbar();

 store.load({
    params : params ? params : {},
    callback : function() {
     更新分页
     if (tbar) {
      tbar.updateInfo();
     }
     if (bbar) {
      bbar.updateInfo();
     }
     //执行回调
     if (callback && typeof(callback) == 'function') {
      callback();
     }
    }
   });
}

 

内部的清空列表公共方法如下

/**
 * 清空列表
 * @param {} grid
 */
var emptyGrid = function(grid) {
 if (!grid) {
  Ext.MessageBox.alert("错误", "列表不存在");
  return;
 }

 var store = grid.getStore();
 if (!store) {
  Ext.log("错误", "列表的数据集不存在");
  return;
 }

 //清空复选框
 var sm = grid.getSelectionModel();
 if (sm) {
  // 清空所有选择项和全选
  var t = Ext.get('x-grid3-hd-checker');
  if (t && t.dom.className == 'x-grid3-hd-checker') {
   var hd = Ext.fly(t.dom.parentNode);
   hd.removeClass('x-grid3-hd-checker-on');
   sm.clearSelections();
  } else {
   sm.clearSelections();
  }
 }

 var tbar = grid.getTopToolbar();
 var bbar = grid.getBottomToolbar();

 //数据集 
 store.removeAll();

 //更新分页
 if (bbar && bbar.updateInfo) {
  bbar.updateInfo();
  bbar.afterTextEl.el.innerHTML = String.format("共 {0} 页", 1);
  bbar.first.setDisabled(true);
  bbar.prev.setDisabled(true);
  bbar.next.setDisabled(true);
  bbar.last.setDisabled(true);
  //bbar.loading.disable();
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值