+ -
当前位置:首页 → 问答吧 → extjs 在控件中使用全局变量时 在其他位置修改过无效

extjs 在控件中使用全局变量时 在其他位置修改过无效

时间:2011-03-31

来源:互联网

如:JScript code

var [color=#FF0000]headertext [/color]= "负责人";
var [color=#FF0000]dataIndextext [/color]= "Principal";
var cm = new Ext.grid.ColumnModel
([        
    new Ext.grid.RowNumberer({header:"序号",width:50}),
    sm,
    {header:"合同编号",dataIndex:"ContractID",width:100},
    {header:"项目名称",dataIndex:"ProjectName",width:100,editor:new Ext.form.TextField()},
    {header:"承担单位",dataIndex:"UndertakeUnit",width:100,editor:new Ext.form.TextField()},
    {header:[color=#FF0000]headertext[/color],dataIndex:[color=#FF0000]dataIndextext[/color],width:120,editor:new Ext.form.TextField()},
    {header:"申请书",dataIndex:"Shenqingshu",width:100,editor:new Ext.form.TextField()},
    {header:"计划表",dataIndex:"Jihuabiao",width:100,editor:new Ext.form.TextField()},
    {header:"合同",dataIndex:"Hetong",width:100,editor:new Ext.form.TextField()}
]);
cm.defaultSortable = true; 
var fields = 
    [
        {name:"ContractID"},
        {name:"ProjectName"},
        {name:"UndertakeUnit"},
        {name:[color=#FF0000]dataIndextext[/color]},
        {name:"Shenqingshu"},
        {name:"Jihuabiao"},
        {name:"Hetong"}
   ];
function hidecommod(dnum){
//    cm.setHidden(nnum,true);
//    cm.setHidden(dnum,false);
//    nnum = dnum;
    //获取数据
    pageitemindex = dnum;
    if(pageitemindex == 5){
        headertext = "档案编号";
        dataIndextext = "FileID";
    }else if(pageitemindex == 6){
        headertext = "负责人";
        dataIndextext = "Principal";
    }else if(pageitemindex == 7){
        headertext = "参加人";
        dataIndextext = "Participant";
    }else if(pageitemindex == 8){
        headertext = "经费预算";
        dataIndextext = "BudgetFunding";
    }else if(pageitemindex == 9){
        headertext = "实施期限";
        dataIndextext = "ImplementationPeriod";
    }else if(pageitemindex == 10){
        headertext = "实施地点";
        dataIndextext = "ImplementationLocation";
    }

   store2.reload({params : {start : storestart,limit : storelimit}});



hidecommod中修改了全局变量之后,在其他位置都是已经为变化之后的,但是在控件内部的还是最初定义的“负责人”和“Principal” 这是为什么呢?

作者: wranglergu   发布时间: 2011-03-31

headertext dataIndextext 这两个是全局变量

作者: wranglergu   发布时间: 2011-03-31

引用楼主 wranglergu 的回复:
如:JScript code

var headertext = "负责人";
var dataIndextext = "Principal";
var cm = new Ext.grid.ColumnModel
([  
  new Ext.grid.RowNumberer({heade……


CSS code
修改后重新渲染下看看,grid.render();
改变内容一般要重新渲染组件的

作者: IBM_hoojo   发布时间: 2011-03-31

加grid.render();后,没什么效果呢。就像store一样,给store的url属性用全局变量
JScript code
url:'ContractBasicSituation.aspx?searchtype='+searchtype+'&jhcode='+jhcodetext+'&lxyears='+lxyearstext+'&zgpart'+zgparttext+'&jslingyu='+jslingyutext

改变全局变量后,重新读取数据时,全局变量还是最初值。需要重新赋url值
JScript code
store2.proxy.conn.url = 'ContractBasicSituation.aspx?searchtype='+searchtype+'&jhcode='+jhcodetext+'&lxyears='+lxyearstext+'&zgpart'+zgparttext+'&jslingyu='+jslingyutext;

或,用参数传递,加
JScript code
//传送之前有一些参数
store2.on('beforeload', function() {
    Ext.apply(this.baseParams, {
        searchtype :searchtype,
        jhcode : jhcodetext,
        lxyears : lxyearstext,
        zgpart : zgparttext,
        jslingyu : jslingyutext,
        pageitemindex:pageitemindex
    });
});


我感觉像是所有的全局变量都回到初始值了。上面的函数function hidecommod(dnum){}有把所有全局变量初始化的功能吗?

作者: wranglergu   发布时间: 2011-03-31

CSS code
store.baseParams = {
        searchtype :searchtype,
        jhcode : jhcodetext,
        lxyears : lxyearstext,
        zgpart : zgparttext,
        jslingyu : jslingyutext,
        pageitemindex:pageitemindex
    };
store.load({....});

作者: IBM_hoojo   发布时间: 2011-03-31