如何在Ext.Window显示后,其中里面的某一个文本框自动获得焦点

如何在Ext.Window显示后,其中里面的某一个文本框自动获得焦点,第1张

因为所有的可视控件需要一个渲染的时间,所以渲染完被刷没了

解决方式:(假设textfield的id是name)加个延迟时间就好!

ExtgetCmp('name')focus(false, 100);

或者

ExtgetCmp('name')focusdefer(100, ExtgetCmp('name'));

如果是extjs的field , 都有 blur , focus 的事件

var field = Extcreate("ExtformfieldText" , {

    listeners:{

        blur: function(){

            //失去焦点事件

        } , 

        focus: function(){

            //获取焦点

        }

    }

});

 

//如果是通过extjs *** 作当前页面中的input

//这是Input

//<input type='text' id="a">

var el = Extget("a");

aon({

        blur: function(){

            //失去焦点事件

        } , 

        focus: function(){

            //获取焦点

        }

});

使用extjs多数都是单页面系统,你说的另一个页面,应该指的就是另一个tab之类的吧,

如果是这样的话,以extjs6为例,可以在当前的view的contorller中:

view = thisup("共同父类的xtype")down('另一个tab的xtype加name值');

grid = viewgetViewModel('grid');

类似的代码就可以解决你的问题。

var e = MainGrid.getSelectionModel().selection.record;e.set(&#39;depid&#39;, &#39;10000&#39;);e.set(&#39;depname&#39;, &#39;总部&#39;);var depid = e.get(&#39;depid&#39;);var depname = e.get(&#39;depname&#39;);这个record其实就是一个json对象

代码如下:

// ArrayStore

var keyNameStore = new ExtdataArrayStore({

fields: ['text', 'value'],

data : [

['商品编号','Meta_productsNo'],

['商品名称','Meta_productName']

]

});

// 通过value值获取keyNameStore里面的text

function getFilterFieldLable(value){

var rt = "";

var rowIndex = keyNameStoregetCount();

for(var i=0;i<rowIndex;i++){

var record = keyNameStoregetAt(i);

var fields = ExtutilJSONencode(recorddata);

var fieldObj = ExtutilJSONdecode(fields);

if(value==fieldObjvalue){

rt = fieldObjtext;

break;

}

}

return rt;

}

方法一、给Grid绑定以下事件:

headerclick : ( Grid this, Number columnIndex, ExtEventObject e )

事件响应代码里面读取dataIndex:

var fieldName = thisgetColumnModel()getDataIndex(columnIndex);

这就是你要的数据列名。

说明:

Grid的headerclick事件虽然每个版本的Docs分别说:

Available since: Ext JS 420

Available since: Ext JS 230

可是它确实在Ext21/docs/output/ExtgridGridPanelhtml里就有的。

针对问题补充:

在你的show函数里如果可以访问到var column=Ext,utilJSONdecode这个变量,那可以尝试:

function show(value,metadata,record,rowIndex,colIndex,store){

alert(columngetDataIndex(colIndex));

}

var cerficicationData = [{

'key' :'', 'value' :'全部'

}, {

'key' :'0', 'value' :'无证'

}, {

'key' :'1', 'value' :'有证'

}];

var cerficicationStore = new ExtdataSimpleStore( {

fields : [ { name :'key', mapping :'key' }, { name :'value', mapping :'value' } ],

data : cerficicationData

});

var expBaseForm = new ExtFormPanel( {

url :'',

method :'post',

labelAlign :'right',

labelWidth :90,

frame :true,

bodyStyle :'padding:0px 0px 0',

items: [{

id:'comboValue',

width:180,

layout:'form',

fieldLabel:'是否有毕业证',

xtype:"combo",

valueField:"key",

displayField:"value",

hiddenName:"certificateFlag",

height:100,

width:200,

store:cerficicationStore,

mode : 'local',//数据模式,local代表本地数据

triggerAction : 'all'// 显示所有下列数据,一定要设置属性triggerAction为all

}]

});

var winIcsQuestionnaireData = new ExtWindow( {

layout : 'fit',

width : 300,

closeAction : 'hide',

height : 200,

closable : false,

resizable : false,

shadow : true,

modal : true,

closable : true,

bodyStyle : 'padding:5 5 5 5',

animCollapse : true,

items: expBaseForm,

buttons : [{

text :'确定',

handler : function() {

alert(ExtgetCmp('comboValue')value());

}

},{

text:'关闭',

winIcsQuestionnaireData hide();

}

}]

});

后台是无法获取Ext控件的,因为Ext是通过javascript在前台画出来的控件,后台根本不知道这个控件的存在。

建议楼主把逻辑都卸载javascript中,然后需要获取数据的地方通过ajax动态获取数据,然后拿到客户端来 *** 作,我们之前实现的一个树和表格的拖拽都是通过Ext作的,涉及到交互的地方就是通过Ajax实现的。

另外,团IDC网上有许多产品团购,便宜有口碑

以上就是关于如何在Ext.Window显示后,其中里面的某一个文本框自动获得焦点全部的内容,包括:如何在Ext.Window显示后,其中里面的某一个文本框自动获得焦点、ext.js 如何获取另一个页面的grid的值、要获取Ext.grid.ColumnModel的记录,判断其是否被选中并获取选中行的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9325863.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存