Ext加载数据源前拼接参数

来源:互联网 发布:windows10如何下载软件 编辑:程序博客网 时间:2024/06/05 03:57

描述遇到的问题:


点击查询,进入方法:

function getUserinfoByLoginName(loginName) {    userData.load({       url : 'auth/usersByLoginName',       params : {            loginName : loginName        }    });}var userData = Ext.create('Ext.data.Store', {    model : 'Ups.model.userInfo',    autoLoad : true,    pageSize : 30,    proxy : {        type : "ajax",        url : "auth/users",        reader : {            type : 'json',            root : 'data',            totalProperty : 'total'        }    }});


userData为数据源,这是源代码,遇到的问题是在查询多条数据分页之后,点击下一页进入原数据源引用的路径,并非getUserinfoByLoginName方法中引用的代码;

解决方法:

function getUserinfoByLoginName(loginName) {    userData.loadPage(1);//设置加载时当前页数为第一页    userData.load();}var userData = Ext.create('Ext.data.Store', {    model : 'Ups.model.userInfo',    autoLoad : true,    pageSize : 30,    proxy : {        type : "ajax",        url : "auth/users",        reader : {            type : 'json',            root : 'data',            totalProperty : 'total'        }    }});userData.on('beforeload',function(userData,options){    var loginName= Ext.getCmp('loginname').value;    var new_params = {        loginName : loginName    };    Ext.apply(userData.proxy.extraParams,new_params);});


点击查询,重新加载,加载前userData拼接参数,传入loginname值。

这样写如果报var loginName= Ext.getCmp('loginname').value为空或不是对象,可将查询输入框改为:

var loginnameLabel = Ext.create('Ext.form.TextField', {    id : 'loginname',    xtype : 'textfield',    labelWidth : 40,    labelAlign : 'right',    name : 'loginname',    columnWidth : 0.2,    margin : '0 0 0 5',    emptyText:'工号'});



1 0