`
pacer123
  • 浏览: 88775 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

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

EXT 
阅读更多

    在项目中某些模块进行查询时,可以通过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();
 }
}

分享到:
评论

相关推荐

    Vue 实现把表单form数据 转化成json格式的数据

    第一步:创建一个数据集(就是你表单需要的数据) 如果你表单都是一些正常的数据,比如 text 什么的。你定义好数据集,就去用 v-model 绑定数据。这样就可以实现数据同步了。 数据集 v-model绑定 如果你的数据不...

    C++Builder精彩编程实例集锦的源代码前3部分.rar

    实例202 如何在一个数据集中浏览另一个数据集的数据 实例203 如何在数据库更新过程中增加事务操作 实例204 如何在程序中实现查找字段 实例205 如何在程序中实现自定义字段 实例206 如何使用字段拖放功能 实例...

    C++Builder精彩编程实例集锦的源代码后3部分.rar

    实例202 如何在一个数据集中浏览另一个数据集的数据 实例203 如何在数据库更新过程中增加事务操作 实例204 如何在程序中实现查找字段 实例205 如何在程序中实现自定义字段 实例206 如何使用字段拖放功能 实例...

    第一部分 界面设计

    实例202 如何在一个数据集中浏览另一个数据集的数据 实例203 如何在数据库更新过程中增加事务操作 实例204 如何在程序中实现查找字段 实例205 如何在程序中实现自定义字段 实例206 如何使用字段拖放功能 实例...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例152 通过$_POST方法获取表单元素 182 实例153 通过GET方法提交表单元素 184 实例154 通过$_GET方法获取表单元素 185 3.2 文本框组件的应用 186 实例155 以文本域的形式显示数据信息 186 实例156 限制多行文本域...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例152 通过$_POST方法获取表单元素 182 实例153 通过GET方法提交表单元素 184 实例154 通过$_GET方法获取表单元素 185 3.2 文本框组件的应用 186 实例155 以文本域的形式显示数据信息 186 实例156 限制多行文本域...

    基于JSP+JavaBean+Servlet三层架构员工考勤管理系统源码+数据库+项目说明.zip

    从输入框输入数据,在servlet层通过request.getParameter()获取form表单提交的参数,将获得的用户名、密码作为参数调用dao层的方法进行查询数据库,select * from t_user_info where username=? andpassword =? 如果...

    JSP实例编程100例

    90、读取表单中所有参数 91、分行写入数据 92、显示请求URL 93、判断session是否过期 94、参数式查询数据库 95、取得数据库中各栏名称 96、使用JavaBean、设置和获取Bean的属性 97、设置Bean的一个属性与输入参数...

    JAP编程学习100例

    90、读取表单中所有参数 91、分行写入数据 92、显示请求URL 93、判断session是否过期 94、参数式查询数据库 95、取得数据库中各栏名称 96、使用JavaBean、设置和获取Bean的属性 97、设置Bean的一个属性与输入参数...

    C#编程经验技巧宝典

    115 &lt;br&gt;0192 如何获取“我的文档”系统文件夹路径 115 &lt;br&gt;0193 如何获取应用程序当前执行的路径 116 &lt;br&gt;0194 如何获取当前操作系统的信息 116 &lt;br&gt;0195 如何实现基本数据类型随意转换 116...

    asp.net技术内幕(1)

    使用ADO.NET &lt;br&gt;第9章 ADO.NET简介 &lt;br&gt;9.1 ADO.NET概述 9.2 执行常见的数据库任务 9.2.1 打开数据库链接 9.2.2 从数据库表获取记录 9.2.3 在查询中使用参数 9.2.4 向数据库添加记录 ...

    asp.net技术内幕(2)

    使用ADO.NET &lt;br&gt;第9章 ADO.NET简介 &lt;br&gt;9.1 ADO.NET概述 9.2 执行常见的数据库任务 9.2.1 打开数据库链接 9.2.2 从数据库表获取记录 9.2.3 在查询中使用参数 9.2.4 向数据库添加记录 ...

    asp.net技术内幕(5)

    使用ADO.NET &lt;br&gt;第9章 ADO.NET简介 &lt;br&gt;9.1 ADO.NET概述 9.2 执行常见的数据库任务 9.2.1 打开数据库链接 9.2.2 从数据库表获取记录 9.2.3 在查询中使用参数 9.2.4 向数据库添加记录 ...

    asp.net技术内幕(4)

    使用ADO.NET &lt;br&gt;第9章 ADO.NET简介 &lt;br&gt;9.1 ADO.NET概述 9.2 执行常见的数据库任务 9.2.1 打开数据库链接 9.2.2 从数据库表获取记录 9.2.3 在查询中使用参数 9.2.4 向数据库添加记录 ...

Global site tag (gtag.js) - Google Analytics