Ext的Panel中用load()动态加载一页面,如何访问这个页面的元素

示例代码:

var panel = new Ext.Panel({
id:id,
title: title,
iconCls: 'tabs',
collapsible:true,
closable:true
});
panel.load({
url: url,
discardUrl: false,
nocache: false,
timeout: 30,
scripts: true
});

这个被访问的url中,返回结果包含一FormaPanel:

var formPanel = new Ext.FormPanel({
id:'form_id_123',
title: 'title',
iconCls: 'tabs',
collapsible:true,
closable:true,
html:'test abc'
});

现在的问题是,如从从panel中找到这个新加载出来的panel?
试过
Ext.get('form_id_123')
panel.findByType('form')
panel.findById('form_id_123')
都找不到。。。要用哪一个函数去找呢?
(注: 界面显示是正常的,我用panel.getEl().dom.innerHTML的确可以看到相关的html内容)
[b]问题补充:[/b]
我的问题不在如何显示与加载上面, 而是在, 如何找到这个新加载的页面中的元素。

这个‘form_id_123’是新出现的一个FormPanel, 在加载这个页面前我是不知道这个对象的引用的, 在加载了这个页面后, 我怎么才能找到这个FormPanel呢。

当前已知的变量只有:"var panel"这个初始panel。

5个回答

[quote]试过
Ext.get('form_id_123')
panel.findByType('form')
panel.findById('form_id_123')
都找不到。。。[/quote]
Ext.getCmp('form_id_123');//可以找到

welcome.html
[code="html"]

var formPanel = new Ext.FormPanel({ id:'form_id_123', title: 'title', iconCls: 'tabs', collapsible:true, closable:true, html:'test abc', renderTo:'welcome'//注意你要渲染才能显示 });

[/code]
[code="js"]var panel = new Ext.Panel({
id:id,
title: title,
iconCls: 'tabs',
collapsible:true,
closable:true,
renderTo:document.body
});
panel.load({
url: 'welcome.html',
discardUrl: false,
nocache: false,
timeout: 30,
scripts: true
}); [/code]

var panel = new Ext.Panel({
id:id,
title: title,
iconCls: 'tabs',
collapsible:true,
closable:true,
renderTo:document.body,
autoLoad : {//也可以这样写
url: 'welcome.html',
discardUrl: false,
nocache: false,
timeout: 30,
scripts: true
}
});

[code="js"]var panel = new Ext.Panel({
id:id,
title: title,
iconCls: 'tabs',
collapsible:true,
closable:true,
renderTo:document.body,
autoLoad : {//也可以这样写
url: 'welcome.html',
discardUrl: false,
nocache: false,
timeout: 30,
scripts: true
}
}); [/code]

忘记加到代码块了

Ext.getCmp

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
panel.load({url:..})后 我想移出页面 或者 加载空百 怎么做

如题:panel.load({url:..})后 我想移出页面 或者 加载空百 怎么做 我试过panel.remove(panel.items[0]) 不成功

ext 页面加载问题

<p>在页面上加载老是:弹出这个错误。那位高手给指点指点,</p> <p> “该页正在访问其控件范围之外的信息,这些有危害,是否继续?对话框”只有点击了确定才能成功!</p><br /><strong>问题补充:</strong><br />Ext.onReady(function() { <br /> <br />function loadMsg() { <br /> Ext.Ajax.request({ <br /> url : 'http://192.168.0.11:8080/xuanrui/sendMes.do?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; method=getMsg', <br /> params : { <br /> toUserName : currentUser <br /> }, <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; success : function(response) { <br /> alert("请求成功"); <br /> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br /> }); <br /> setTimeout(loadMsg, 1000 * 3); <br /> } <br /> loadMsg(); <br /> <br />}); <br /> <br /> <br />为什么请求成功了之后,还是弹出这个危害对话框,是不是ext中的这个Ext.Ajax.request方法的问题呢? <br />

Ext.Panel里的内容动态的添加和删除

有一个panel,可能是这样: [code="js"] var panel = new Ext.Panel({ layout:'column', defaults:{columnWidth: '.5'} ,items:[ new Ext.Panel({items:[{xtype:'radio', boxLabel:'1'}, {xtype:'radio', boxLabel: '2'}]}) ,new Ext.Panel({html: 'aaa'}) ] }); [/code] 左右结构, 左边是两个radio. 我期望,点击一个radio. 刷新右边的panel. 这是一个很典型的局部刷新的功能. [color=red]在点击事件中, 怎么让panel只刷新右边部分呢?[/color]

TabPanel通过iframe加载页面问题

大家好!近段时间在弄EXT,我用的是EXT3.2.1的版本,单页面userDataGrid.jsp显示是没有问题的,如附件图片userDataGrid.bmp所示,userDataGrid.js的代码: <br /> <br /><pre name="code" class="java"> Ext.apply(Ext.form.VTypes, { password : function(val, field) { if (field.initialPassField) { var pwd = Ext.getCmp(field.initialPassField); return (val == pwd.getValue()); } return true; }, passwordText : 'Passwords do not match' }); var getCheckValue = function (dom){ if( !dom ) return ; return (dom.checked)?1:0; } var getCheckboxValue = function (dom){ if( !dom ) return ; return dom.checked; } Ext.onReady(function(){ Ext.BLANK_IMAGE_URL = '../resources/images/default/s.gif'; Ext.QuickTips.init(); // turn on validation errors beside the field globally Ext.form.Field.prototype.msgTarget = 'side'; //=================================================================================== // simple array store var user_data_form_store = new Ext.data.JsonStore({ fields : ['name2', 'userType'], data : [ {name2 : 'Administrator', userType: '0'}, {name2 : 'Manager', userType: '1'}, {name2 : 'Operator', userType: '2'}, {name2 : 'Stuff', userType: '3'} ] }); var combo = new Ext.form.ComboBox({ tpl: '&lt;tpl for="."&gt;&lt;div ext:qtip="{name2}. (value={userType})" class="x-combo-list-item" style="color:green"&gt;{name2}&lt;/div&gt;&lt;/tpl&gt;', store: user_data_form_store, name: 'userType', id: 'userType_id', fieldLabel: 'User Type', hiddenName:'userType', displayField: 'name2', allowBlank : false, valueField : 'userType', typeAhead: true, mode: 'local',//or use remote forceSelection: true, triggerAction: 'all', editable: false, emptyText:'Select an User Type...', selectOnFocus:true, anchor:'94%' //applyTo: 'local-states' }); var allowSms = new Ext.form.Checkbox({ name: 'allowSms', id: 'allowSms_id', fieldLabel: 'Allow Sms', anchor:'94%' }); var allowEmail = new Ext.form.Checkbox({ name: 'allowEmail', id: 'allowEmail_id', fieldLabel: 'Allow Email', anchor:'94%' }); var allowJob = new Ext.form.Checkbox({ name: 'allowJob', id: 'allowJob_id', fieldLabel: 'Allow Job', anchor:'94%' }); var allowPhone = new Ext.form.Checkbox({ name: 'allowPhone', id: 'allowPhone_id', fieldLabel: 'Allow Phone', anchor:'94%' }); var contact = new Ext.form.TextField({ fieldLabel: 'Contact', allowBlank : true, //maxLength: 20, id:'contact_id', name: 'contact', anchor:'94%' }); var createDate = new Ext.form.DateField({ allowBlank : true, editable: false, format : 'Y-m-d H:i:s', showToday : true, selectOnFocus : false, name: 'createDate', id:'createDate_id', fieldLabel: 'CreateDate', anchor:'94%' }); var address = new Ext.form.TextField({ fieldLabel: 'Address', allowBlank : true, //maxLength: 20, id:'address_id', name: 'address', anchor:'96%' }); var user_form = new Ext.FormPanel({ //labelAlign: 'top', id :'user_form_ids', labelWidth: 75, // label settings here cascade unless overridden frame:true, //title: 'Multi Column, Nested Layouts and Anchoring', bodyStyle:'padding:10px 10px 0 10px', width: 700, heigh: 1000, items: [{ layout:'column', items:[{ columnWidth:.5, layout: 'form', items: [{ xtype:'textfield', fieldLabel: 'User Name', allowBlank : false, maxLength: 20, id:'userName', name: 'userName', anchor:'94%' }, { xtype:'textfield', inputType: 'password', fieldLabel: 'Password', allowBlank : true, name: 'password', id:'password', anchor:'94%' }, { xtype:'textfield', fieldLabel: 'GSM Phone', allowBlank : true, maxLength: 20, id:'gsmPhone', name: 'gsmPhone', anchor:'94%' }, { xtype:'checkbox', name: 'allowSms2', id: 'allowSms_id', fieldLabel: 'Allow Sms', anchor:'94%' }, allowSms, allowJob, contact ] },{ columnWidth:.5, labelWidth: 105, layout: 'form', items: [ combo , { xtype:'textfield', vtype:'password', inputType: 'password', allowBlank : true, fieldLabel: 'Confirm Password', name: 'repassword', id:'repassword', initialPassField:'password', anchor:'94%' }, { xtype:'textfield', fieldLabel: 'E-mail', name: 'email', id:'email', vtype:'email', anchor:'94%' }, allowEmail, allowPhone, createDate ] }] }, address, { xtype:'htmleditor', id:'remark_id', name:'remark', fieldLabel:'Remark', height:200, anchor:'96%' },{ xtype:'hidden', fieldLabel:'Hidden Text', name:'userId', id:'userId_id', value:'null', anchor:'96%' }], buttons: [{ text: 'Load Data', anchor:'90%', handler : function(){ user_form.getForm().load({ url: '/userData.do', waitMsg: 'Loading your information...', params : {"method":"loadUserData","userId":"51"}, method : 'GET', success: function(user_form, a){ if(a.result.data.favoritie3 == "asdf"){ Ext.getCmp("favoritie3").setValue(true); } //Ext.getCmp("favoritie4").setValue(a.result.data.favoritie4 == "abc"); Ext.getCmp("repassword").setValue(Ext.getCmp("password").getValue()); Ext.Msg.alert('Success', 'Processed successfully on the server, your name is :'+a.result.data.userName); //msg('Success', 'Processed file "'+o.result.file+'" on the server'); }, failure:function(user_form, a){ Ext.Msg.alert('Failure', 'Failure...'+a.result.data.description); user_form.reset(); } }); } },{ text: 'Save', anchor:'90%', handler : function(){ if (user_form.getForm().isValid()){ user_form.getForm().submit({ url: '/userData.do', waitMsg: 'Saving your information...', params : {"method":"addUserData","allowSms":getCheckValue(Ext.getCmp("allowSms_id")), "allowEmail":getCheckValue(Ext.getCmp("allowEmail_id")),"allowJob":getCheckValue(Ext.getCmp("allowJob_id")), "allowPhone":getCheckValue(Ext.getCmp("allowPhone_id"))}, success: function(user_form, a){ Ext.Msg.alert('Success', 'Processed successfully on the server, your name is :'+a.result.result.userId); //msg('Success', 'Processed file "'+o.result.file+'" on the server'); }, failure:function(user_form, a){ Ext.Msg.alert('Failure', 'Failure...'); //user_form.reset(); } }); } //end if } },{ text: 'Reset', anchor:'90%', handler: function() { user_form.form.reset(); } }] }); //=================================================================================== // create the Grid of start // example of custom renderer function function change(val){ if(val.length &gt; 20){ return '&lt;span style="color:red;"&gt;' + val + '&lt;/span&gt;'; }else if(val.length &gt; 15){ return '&lt;span style="color:green;"&gt;' + val + '&lt;/span&gt;'; } return val; } function checkBoxRenderer(val){ if(val == 1){ return '&lt;span style="color:red;"&gt;' + true + '&lt;/span&gt;'; }else if(val == 0){ return '&lt;span style="color:green;"&gt;' + false + '&lt;/span&gt;'; } return val; } function grid_refresh(){ Ext.apply(store.baseParams, { "start":0, "limit":10, "method":"searchUserData", "userName":Ext.get('keywordText_id').getValue() }); store.load(); } // create the data store var store = new Ext.data.Store({ baseParams:{"method":"searchUserData"}, proxy: new Ext.data.HttpProxy({ url: "/userData.do" }),//new Ext.ux.data.PagingMemoryProxy(myData), autoDestroy: true, remoteSort:true, autoLoad: {params:{start:0, limit:10}}, reader: new Ext.data.JsonReader({ root: 'data', totalProperty: 'recordCount', idProperty: 'id', sortInfo: {field:'userName', direction:'ASC'}, fields: [ {name: 'userId', type: 'int'}, {name: 'userType', type: 'int'}, {name: 'userName', type: 'string'}, {name: 'password', type: 'string'}, {name: 'allowSms', type: 'int'}, {name: 'gsmPhone', type: 'string'}, {name: 'contact', type: 'string'}, {name: 'address', type: 'string'}, {name: 'email', type: 'string'}, {name: 'allowEmail', type: 'int'}, {name: 'allowJob', type: 'int'}, {name: 'allowPhone', type: 'int'}, {name: 'createDate', type: 'date', dateFormat: 'Y-m-d H:i:s'}, {name: 'remark', type: 'string'} ] }) }); var keywordText = new Ext.form.TextField({ //fieldLabel: 'keyword', id : 'keywordText_id', name: 'keyword', anchor: '95%', maxLength: 25 }); var sm = new Ext.grid.CheckboxSelectionModel({ dataIndex:"userId" }); var grid = new Ext.grid.GridPanel({ store: store, columns: [ &amp;nbsp;&amp;nbsp;&amp;nbsp;sm, &amp;nbsp;&amp;nbsp;&amp;nbsp;new Ext.grid.RowNumberer({width: 30, header:"&lt;font color='red'&gt;No.&lt;/font&gt;"}), &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {id:'userId',header: "User Id", width: 50, hidden: false, dataIndex: 'userId'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "User Type", width: 75, dataIndex: 'userType'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "userName", width: 150, renderer: change, dataIndex: 'userName'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "password", width: 120, dataIndex: 'password'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "gsmPhone", width: 120, dataIndex: 'gsmPhone'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "email", width: 125, dataIndex: 'email'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "createDate", width: 120,renderer: Ext.util.Format.dateRenderer('Y-m-d H:i:s'), dataIndex: 'createDate'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "contact", width: 200, dataIndex: 'contact'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "address", width: 200, dataIndex: 'address'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "allowSms", width: 60, renderer: checkBoxRenderer, dataIndex: 'allowSms'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "allowEmail", width: 60, dataIndex: 'allowEmail'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "allowJob", width: 60, dataIndex: 'allowJob'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "allowPhone", width: 60, dataIndex: 'allowPhone'}, &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {header: "remark", width: 275, hidden:true, dataIndex: 'remark'} &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ], loadMask:true, stripeRows: true, //autoExpandColumn: 'userName_id', layout:'fit', /* height:800, width: 1200,*/ bodyStyle:'margin:0;padding:0;', //autoWidth: true, width : Ext.get('user_data_grid_div_id').getWidth(), height : Ext.get('user_data_grid_div_id').getHeight(), frame:true, title:'User Data Grid List Sliding Pager Test', plugins: new Ext.ux.PanelResizer({ minHeight: 100 }), tbar:[{ id:'add_id', text:'Add', iconCls: 'add', handler: function(){ var win = new Ext.Window({ //contentEl:"win", scripts: true, title: 'User Data', closable:true, width:720, height:480, closeAction:'hide', border:false, plain:true, layout: 'border', items: new Ext.Panel({ region: 'center', margins:'3 3 4 3', cmargins:'3 3 3 3', autoDestroy : true, defaults:{autoScroll:true}, items:[user_form] }) }); win.show(); } }, '-', { id:'remove_id', text:'Remove', iconCls: 'remove', handler: function(){ store.load({params:{start:0, limit:10,"method":"loadUserDataGrid"}}); Ext.Msg.alert('Result Tips', "Remove a record seccessfully..."); } }, '-&gt;', 'Search a UserName?: ', keywordText,{ id:'search_id', text: 'Search', pressed: false, iconCls: 'search', handler: grid_refresh },' '], bbar: new Ext.PagingToolbar({ pageSize: 10, store: store, displayInfo: true, plugins: new Ext.ux.ProgressBarPager() }) }); window.onresize = function(){ grid.setWidth(0); grid.setHeight(0); grid.setWidth(Ext.get("user_data_grid_div_id").getWidth()); grid.setHeight(Ext.get("user_data_grid_div_id").getHeight()); }; //控制缩放的时候修改grid的高度 grid.on('afterlayout',function(view,layout){ var height = grid.getSize().height - 30; },this); // create the Grid of end grid.render("user_data_grid_div_id"); store.load({params:{start:0, limit:100000,"method":"searchUserData"}}); }); </pre> <br /> <br /> <br />userDataGrid.jsp代码所示: <br /><pre name="code" class="java"> &lt;html&gt; &lt;script type="text/javascript" src="adapter/ext/ext-base.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="js/common/ext-all.js"&gt;&lt;/script&gt; 。。。其他的一些js加载省略了 &lt;body&gt; &lt;div id="user_data_grid_div_id" style="width:100%;height:100%; margin:0; padding:0" &gt;&lt;/div&gt; &lt;/body&gt; &lt;/html&gt; </pre> <br /> <br />现在我想在主框架页面(main.jsp,main.js)上动态加载其他页面(userDataGrid.jsp),如ext_main.bmp所示,我是用TabPanel里面的iframe加载的。通过iframe加载后有些功能就不能正常使用:grid分页的按钮,grid工具上的按钮和查询功能按钮都不能正常使用了,main.js: <br /><pre name="code" class="java"> Ext.onReady(function(){ Ext.state.Manager.setProvider(new Ext.state.CookieProvider()); var viewport = new Ext.Viewport({ layout: 'border', items: [ { region: 'north', contentEl: 'viewport', split: true, minSize: 124, maxSize: 124, margins: '0 0 0 0' }, { region: 'south', contentEl: 'south12', split: true, minSize: 5, maxSize: 5, title: '&amp;nbsp;', margins: '0 0 0 0' }, { region: 'east', title: 'East Side', collapsible: true, split: true, width: 225, // give east and west regions a width minSize: 175, maxSize: 400, margins: '0 5 0 0', layout: 'fit', // specify layout manager for items items: // this TabPanel is wrapped by another Panel so the title will be applied new Ext.TabPanel({ border: false, // already wrapped so don't add another border activeTab: 1, // second tab initially active tabPosition: 'bottom', items: [{ html: '&lt;p&gt;A TabPanel component can be a region.&lt;/p&gt;', title: 'A Tab', autoScroll: true }, new Ext.grid.PropertyGrid({ title: 'Property Grid', closable: true, source: { "(name)": "Properties Grid", "grouping": false, "autoFitColumns": true, "productionQuality": false, "created": new Date(Date.parse('10/15/2006')), "tested": false, "version": 0.01, "borderWidth": 1 } })] }) }, { region: 'west', id: 'west-panel', // see Ext.getCmp() below title: 'West', split: true, width: 200, minSize: 175, maxSize: 400, collapsible: true, margins: '0 0 0 5', layout: { type: 'accordion', animate: true }, items: [{ contentEl: 'west', title: 'Navigation', border: false, iconCls: 'westnavigationnavigation' // see the HEAD section for style used }, { title: 'Settings', html: '&lt;p&gt;Some settings in here.&lt;/p&gt;', border: false, iconCls: 'westnavigationsettings' }] }, // in this instance the TabPanel is not wrapped by another panel // since no title is needed, this Panel is added directly // as a Container tabs ] }); viewport.doLayout(); // get a reference to the HTML element with id "hideit" and add a click listener to it Ext.get("hideit").on('click', function(){ // get a reference to the Panel that was created with id = 'west-panel' var w = Ext.getCmp('west-panel'); // expand or collapse that Panel based on its collapsed property state w.collapsed ? w.expand() : w.collapse(); }); }); </pre> <br /> <br />动态加载的TabPanel.js代码: <br /><pre name="code" class="java"> var indexId = "new_tab_id_"; var title = ""; Ext.ux.IFrameComponent = Ext.extend(Ext.BoxComponent, { onRender : function(ct, position){ this.el = ct.createChild({tag: 'iframe', id: 'iframe-'+ this.id, frameBorder: 0, margin:0, padding:0, src: this.url}); } }); function addNewTab(str, url){ //alert(url); //indexId = indexId + str; title = document.getElementById(str).innerHTML; var obj = Ext.getCmp(indexId + str); if (!obj){ var obj = new Ext.Panel({ id:indexId + str, title: title, width:'100%', height:'100%', iconCls: 'newtab', closable: false, frame:true, layout: 'fit', items: [ new Ext.ux.IFrameComponent({ id: indexId + str, url: url }) ], listeners:{ activate:function(tab){ tab.getUpdater().refresh(); } } //html:'&lt;iframe id="'+indexId + str+'" scrolling="auto" frameborder="0" width="100%" height="100%" style="margin:0; padding:0;" src="' // +url+'"&gt;&lt;/iframe&gt;' //autoLoad: {url: url, method:'GET', params: 'foo=bar&amp;wtf=1', scripts:true} }); tabs.add(obj); //tabs.setActiveTab(obj); /* tabs.add({ id:indexId + str, title: title, closeAction:'close', iconCls: 'newtab', closable: true, layout: 'border', //html: '&lt;iframe src="'+url+'" width="100%" height="100%"/&gt;' html:'&lt;iframe id="'+indexId + str+'" frameborder="0" width="100%" height="100%" style="margin:0 0 0 0; padding:0 0 0 0;" src="' +url+'"&gt;&lt;/iframe&gt;' //autoLoad : {url:url, scripts:true} //items: obj }).show();*/ }else{ //obj.getUpdater().update(url); obj.show(); } showCurrentActiveTabs(); tabs.setActiveTab(obj); indexId = "new_tab_id_"; } function showCurrentActiveTabs(){ } var tabs = new Ext.TabPanel({ region: 'center', deferredRender: false, resizeTabs:true, activeTab: 0, minTabWidth: 135, enableTabScroll:true, activeTab: 0, margins : '3 3 3 0', plain:true, frame:true, defaults:{autoScroll: true, closable: true}, items:[{ contentEl: 'center2', title: 'API Home', closable: false, iconCls: 'newtab' }] }); tabs.on('beforedestroy', function(tab) { tabs.remove(tab,false); tab.hide(); return false; }); </pre> <br /> 现在把userDataGrid.jsp通过tabpanel加载进来后,如图:ext_main.bmp所示, 出现了2个问题: <br /> <br />1. grid工具栏上的按钮和分页按钮都不能正常使用了,点按钮:add, remove, search都没有反应; <br /> <br />2. grid怎么样可以填充满整个TabPanel? <br /> <br /> <br /> <br />请高手们多多指教,谢谢! <br /> <br />

请教一个问题,ext panel里面嵌套iframe大小问题

``` panel = new Ext.Panel({ id:'panel', frame : false, height:(document.body.clientHeight)/2, html :'<iframe id="chartFrame" src="" frameBorder=0 scrolling="auto" width="100%" height="100%"></iframe>' }); ``` 我在panel里面添加了一个iframe ,里面是一个jsp页面,table表单,如何使panel的高度与jsp的高度一样呀,不出现滚动条(超出屏幕部分出现滚动条,我的现在的效果是只显示一小部分,然后就出现滚动条,没有布满全屏),全部显示

extJS 如何在Panel加载组件时显示遮罩层?

效果就是一个panel,是空白的,然后这个panel写一个loadPanel的方法,调用这个方法可以动态为panel加载组件,期间需要显示遮罩来提示'加载中,请稍候...',如果加载成功则除去遮罩层,并返回加载的组件,如果不成功则遮罩提示'加载失败'并返回null 我的代码如下,但只是美好的幻觉代码而已: [code="java"] myPanel=Ext.extend(Ext.Panel,{ loadPanel : function(config){ this.el.mask('加载中,请稍候...'); //创建组件 var c = null; try{ c = Ext.create(config); this.add(c); this.doLayout(); this.el.unmask(); } catch(err){ this.el.mask('加载失败!'); } finally{ return c; } } }); [/code] 上面的代码看起来好像挺有条理的,但有很多破绽: 1.'加载中'的提示如果不强行中断(比如在创建组件前alert中断进程),那么永远都看不见这个提示,就已经执行到create了,但是由于javascript是单线程的,所以在create的时候是假死状态,根本不可能显示出'加载中'的提示,我怀疑mask是延时执行的! 2.由于是单线程,所以除非try抛出异常,否则肉眼根本看不见遮罩层的显示,因为单线程导致浏览器假死. 3.如果使用defer延迟create的执行,那么这个方法又无法返回结果,因为javascript没有sleep等待功能,defer只是推迟几秒再执行指定的方法,只是一个回调,并不能强制线程等待,所以用defer则永远得不到create出来的c 希望大家帮忙如何实现组件加载的遮罩效果

EXT页面加载后台数据问题

我刚接触EXT,试做了一个页面,在页面打开时,加载后台取到一个ID值,显示在页面的“编号”文本输入框内, 大致代码如下: [code="C#"] loginForm = new Ext.form.FormPanel({ labelAlign: 'left', buttonAlign: 'center', bodyStyle: 'padding:5px', frame: true, labelWidth: 80, items: [ { xtype: "textfield", fieldLabel: "编号", name: "ContactId" }, { xtype: "textfield", fieldLabel: "工程名称", name: "ProjectName", allowBlank: false, blankText: '请输入工程名称' }, listeners:{ render:function(){ var jsonDataObj = loginForm .getForm().getValues(); Ext.Ajax.request({ url: 'GetMaxId.ashx', params: '', jsonData: jsonDataObj, success: function(response, options) { var responseData = Ext.decode(response.responseText); loginForm.getForm().setValues(responseData)[ { id: "ContactId", value: responseData.data.maxid }]; }, failure: function() { Ext.Msg.alert('错误', '发生错误!'); } }) } }) [/code] 后台简易代码: [code="C#"] public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; //省略逻辑处理 context.Response.Write("{success:true,data:{msg:'加载成功!',maxid:newMaxId}}"); } [/code] 现在页面代码里的responseData取不到值, response.responseText本身就没值, 而且后台返回staus都是failure, 请问我这个页面后台调用响应是不是有问题啊?! 有没有人能帮我解答一下?!谢谢 [b]问题补充:[/b] 取不到值的问题我是找到了, context.Response.Write("{success:true,data:{msg:'加载成功!',maxid:newMaxId}}"); 这话给绕了: context.Response.Write("{success:true,data:{msg:'加载成功!',maxid:'" + newMaxId + "'}}"); 一开始就被双引号引着,之前代码里得到的值没办法设回去了。 现在问题页面上是得到后台返回的值了,但不清楚应该怎么传给页面控件, 还有一个,我不是想通过按钮激发取值,我是想在页面加载时,去后台取值显示在页面上。

jquery中使用load加载进来的页面的js失效,不知道大家是如何解决这种情况的

jquery中使用load加载进来的页面的js失效,不知道大家是如何解决这种情况的 想听听大家的高招 [b]问题补充:[/b] $.get("leftMenu.html")这样获取的是个对象吗?如何将获取的页面插入到一个div中,并却保证leftMenu中js的正常使用??

Ext Panel 显示问题

我在Servlet里面做了一个用于显示报表的例子,在MyEclipse工程下面能运行显示,我现在的项目前台是用Ext写的,Ext面板上面留有一个Panel显示区域,我怎么才能让Servlet里面的报表例子显示在Ext的Panel面板上面呢,我非常希望能得到大家的帮助,我是Ext初学者,先谢谢了。

EXT Panel的 html

我知道Panel里面可以用HTML标签放文本 比如这样 { title:"南宁供电局企业门户BI管理", width:200, region:"west", html:"ggg" } 这里面放了GGG,但是我现在不想这样静态的放 因为我有个JSP文件是展示数的 我想让这个panel里放这个文件 请问大家怎么实现 谢谢! [b]问题补充:[/b] 我在代码里加了这段代码之后 为什么一直都是loading。。。的状态 我的路径是正确的啊 代码是 { title:"南宁供电局企业门户BI管理", width:200, region:"west", autoLoad:{ url:"tree.JSP", scripts:true, callback:fill} } 回调代码 function fill(){ Ext.MessageBox.alert("回调"); } 谢谢大家

在一个页面的div中加载出另一个页面的div内容

``` 页面一的内容: <div id="result"></div> <script> document.getElementById("result").innerHTML = "用户代码:" ; </script> 页面二的内容: <div id="box"></div> 想将 result 里的内容加载到 box 里面 ```

Ext中组件加载问题

在使用Ext的时候,我在一个js文件定义了一个form表单组件,在另一个js文件中通过组件的id来获得组件(Ext.Cmp())在ie7下能够获得组件,但是在ie6和ff3下都不能找到这个组件,错误提示这个组件未定义. 通过我自己的测试: Ext.ComponentMgr.all.each(function(r){alert(r.id)}) 发现定义的form表单在ie6和ff下都没有被加载. 在定义form表单的js文件里面我做的测试 alert("aa"); var form = new Ext.FormPanel({ ... }); alert("bb"); alert("aa")执行了的,但是alert("bb");未执行 请问这个是怎么回事? [b]问题补充:[/b] 是我写错了,是用的Ext.getCmp(); [b]问题补充:[/b] js代码: 第一次用Ext ,不足之处请指教 //用户痕迹统计树形菜单 var statisticsTree = new Ext.tree.TreePanel({ id:'statisticsTree', frame:false, border:false, autoScroll:true, enableDD:false,//是否支持拖拽效果 containerScroll: true,//是否支持滚动条 split:true, rootVisible:false,//是否显示跟节点 //collapseMode:'mini',//在分割线处出现按钮 collapsible: true, margins:'0 0 5 5', loader:new Ext.tree.TreeLoader({ dataUrl:'js/extjs/statisticsTree.json' }) }); var statisticsRoot = new Ext.tree.AsyncTreeNode({ text:'统计', draggable:false, id:'statisticsRoot' }); statisticsTree.setRootNode(statisticsRoot); //ippv统计 var ippv_ds = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ //url:'/platform/management/statistics/statisticsIpPv.htm', method:'post' }), autoLoad:false, remoteSort:false, //服务器端排序 reader: new Ext.data.JsonReader({root:'list',totalProperty:'pagination.count'}, [ {name: '_date'}, {name: 'visitorquantity',type:'int'}, {name: 'ipquantity',type:'int'}, {name: 'pvquantity',type:'float'} ]) }); ippv_ds.load({params:{'pagination.begin':0,'pagination.pageSize':20}}); var sm=new Ext.grid.CheckboxSelectionModel();//表格复选列 var ippv_cm = new Ext.grid.ColumnModel([ {header:'日期',dataIndex:'_date',renderer: function(value){ if(value!=null&&value.length>0){ var d = value.split('T'); return d[0]; } return value; }}, {header:'访客数',dataIndex:'visitorquantity'}, {header:'独立IP数',dataIndex:'ipquantity'}, {header:'PV',dataIndex:'pvquantity'} ]); ippv_cm.defaultSortable = true; var ippv_form = new Ext.FormPanel({ id:'ippv_form', border: false, labelAlign:'right', region:'north', height:80, frame:true, items:[new Ext.form.FieldSet({ title:'查询', columnWidth: 1, layout: 'column', border: true, anchor:'50%', labelWidth: 50, items:[{ columnWidth:.4, layout: 'form', border:false, items: [{ xtype:'datefield', fieldLabel: '日期:从', name: 'beginDate1', format:'Y-m-d', id:'beginDate1', anchor: '90%' }] },{ columnWidth:.4, layout: 'form', border:false, items: [{ xtype:'datefield', fieldLabel: '到', name: 'endDate1', format:'Y-m-d', id:'endDate1', anchor:'90%' }] },{ columnWidth:.2, layout: 'form', border:false, items: [{ xtype:'button', text:'查询', handler: function(){ var beginDate = document.getElementById('beginDate1').value; var endDate = document.getElementById('endDate1').value; var url = "/platform/management/statistics/statisticsIpPv.htm?beginDate="+beginDate+"&endDate="+endDate; ippv_ds.proxy = new Ext.data.HttpProxy({ url:url, method:'post' }); ippv_ds.reload(); ippv_grid.reconfigure(ippv_ds,ippv_cm); } }] }] })] }); var ippv_grid = new Ext.grid.GridPanel({ id: 'ippv_grid', region:'center', loadMask:true, ds: ippv_ds, cm: ippv_cm, height:500, layout:'fit', frame:true, bbar: new Ext.PagingToolbar({ pageSize: 20, store: ippv_ds, paramNames:{start: 'pagination.begin', limit: 'pagination.pageSize'}, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg: "没有记录" }) }); //联盟-搜索引擎统计 var union_search_ds = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ //url:'/platform/management/statistics/statisticsFrom.htm', method:'post' }), remoteSort:true, //服务器端排序 reader: new Ext.data.JsonReader({root:'list',totalProperty:'pagination.count'}, [ {name: '_from'}, {name: 'request_quantity',type:'int'}, {name: 'average_request_page_quantity',type:'float'}, {name: 'bounce_rate',type:'float'}, {name: 'register_visitor',type:'int'}, {name: 'registration_rate',type:'float'}, {name: 'order_generation_quantity',type:'int'}, {name: 'listprice',type:'float'}, {name: 'visitor_back_quantity',type:'int'}, {name: 'visitor_quantity',type:'int'}, {name: 'average_back_quantity',type:'float'} ]) }); union_search_ds.load({params:{'pagination.begin':0,'pagination.pageSize':20}}); var union_search_cm = new Ext.grid.ColumnModel([ {header:'来源地',dataIndex:'_from'}, {header:'访问量',dataIndex:'request_quantity'}, {header:'平均访问页面',dataIndex:'average_request_page_quantity'}, {header:'跳出率',dataIndex:'bounce_rate'}, {header:'注册率',dataIndex:'registration_rate'}, {header:'注册人数',dataIndex:'register_visitor'}, {header:'下单人数',dataIndex:'order_generation_quantity'}, {header:'销售码洋',dataIndex:'listprice'}, {header:'回访客数量',dataIndex:'visitor_back_quantity'}, {header:'访客数量',dataIndex:'visitor_quantity'}, {header:'平均回访次数',dataIndex:'average_back_quantity'} ]); union_search_cm.defaultSortable = true; var union_search_form = new Ext.FormPanel({ id:'union_search_form', border: false, labelAlign:'right', region:'north', height:80, frame:true, items:[new Ext.form.FieldSet({ title:'查询', columnWidth: 1, layout: 'column', border: true, anchor:'50%', labelWidth: 50, items:[{ columnWidth:.4, layout: 'form', border:false, items: [{ xtype:'datefield', fieldLabel: '日期:从', name: 'beginDate2', format:'Y-m-d', id:'beginDate2', anchor: '90%' }] },{ columnWidth:.4, layout: 'form', border:false, items: [{ xtype:'datefield', fieldLabel: '到', name: 'endDate2', format:'Y-m-d', id:'endDate2', anchor:'90%' }] },{ columnWidth:.2, layout: 'form', border:false, items: [{ xtype:'button', text:'查询', handler: function(){ var beginDate = document.getElementById('beginDate2').value; var endDate = document.getElementById('endDate2').value; var url = "/platform/management/statistics/statisticsFrom.htm?beginDate="+beginDate+"&endDate="+endDate; union_search_ds.proxy = new Ext.data.HttpProxy({ url:url, method:'post' }); union_search_ds.reload(); union_search_grid.reconfigure(union_search_ds,union_search_cm); } }] }] })] }); var union_search_grid = new Ext.grid.GridPanel({ id: 'union_search_grid', region:'center', loadMask:true, ds: union_search_ds, cm: union_search_cm, height:500, layout:'fit', frame:true, bbar: new Ext.PagingToolbar({ pageSize: 20, store: union_search_ds, paramNames:{start: 'pagination.begin', limit: 'pagination.pageSize'}, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg: "没有记录" }) }); //搜索引擎关键字统计 var keyword_ds = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ //url:'/platform/management/statistics/statisticsKeyword.htm', method:'post' }), autoLoad:false, remoteSort:true, //服务器端排序 reader: new Ext.data.JsonReader({root:'list',totalProperty:'pagination.count'}, [ {name: '_from'}, {name: 'keyword',type:'string'}, {name: 'search_quantity',type:'int'} ]) }); keyword_ds.load({params:{'pagination.begin':0,'pagination.pageSize':20}}); var keyword_cm = new Ext.grid.ColumnModel([ {header:'来源地',dataIndex:'_from'}, {header:'关键字',dataIndex:'keyword'}, {header:'搜索次数',dataIndex:'search_quantity'} ]); keyword_cm.defaultSortable = true; var keyword_form = new Ext.FormPanel({ id:'keyword_form', border: false, labelAlign:'right', region:'north', height:80, frame:true, items:[new Ext.form.FieldSet({ title:'查询', columnWidth: 1, layout: 'column', border: true, anchor:'50%', labelWidth: 50, items:[{ columnWidth:.4, layout: 'form', border:false, items: [{ xtype:'datefield', fieldLabel: '日期:从', name: 'beginDate3', format:'Y-m-d', id:'beginDate3', anchor: '90%' }] },{ columnWidth:.4, layout: 'form', border:false, items: [{ xtype:'datefield', fieldLabel: '到', name: 'endDate3', format:'Y-m-d', id:'endDate3', anchor:'90%' }] },{ columnWidth:.2, layout: 'form', border:false, items: [{ xtype:'button', text:'查询', handler: function(){ var beginDate = document.getElementById('beginDate3').value; var endDate = document.getElementById('endDate3').value; var url = "/platform/management/statistics/statisticsKeyword.htm?beginDate="+beginDate+"&endDate="+endDate; keyword_ds.proxy = new Ext.data.HttpProxy({ url:url, method:'post' }); keyword_ds.reload(); keyword_grid.reconfigure(keyword_ds,keyword_cm); } }] }] })] }); var keyword_grid = new Ext.grid.GridPanel({ id: 'keyword_grid', ds: keyword_ds, cm: keyword_cm, region:'center', loadMask:true, height:500, layout:'fit', frame:true, bbar: new Ext.PagingToolbar({ pageSize: 20, store: keyword_ds, paramNames:{start: 'pagination.begin', limit: 'pagination.pageSize'}, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg: "没有记录" }) }); // 页面访问数量统计 var access_quantity_ds = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ //url:'/platform/management/statistics/statisticsPage.htm', method:'post' }), autoLoad:false, remoteSort:true, //服务器端排序 reader: new Ext.data.JsonReader({root:'list',totalProperty:'pagination.count'}, [ {name: 'page'}, {name: 'quantity',type:'int'} ]) }); access_quantity_ds.load({params:{'pagination.begin':0,'pagination.pageSize':20}}); var access_quantity_cm = new Ext.grid.ColumnModel([ {header:'页面',dataIndex:'page'}, {header:'访问数量',dataIndex:'quantity'} ]); access_quantity_cm.defaultSortable = true; var access_quantity_form = new Ext.FormPanel({ id:'access_quantity_form', border: false, labelAlign:'right', region:'north', height:80, frame:true, items:[new Ext.form.FieldSet({ title:'查询', columnWidth: 1, layout: 'column', border: true, anchor:'50%', labelWidth: 50, items:[{ columnWidth:.4, layout: 'form', border:false, items: [{ xtype:'datefield', fieldLabel: '日期:从', name: 'beginDate4', format:'Y-m-d', id:'beginDate4', anchor: '90%' }] },{ columnWidth:.4, layout: 'form', border:false, items: [{ xtype:'datefield', fieldLabel: '到', name: 'endDate4', format:'Y-m-d', id:'endDate4', anchor:'90%' }] },{ columnWidth:.2, layout: 'form', border:false, items: [{ xtype:'button', text:'查询', handler: function(){ var beginDate = document.getElementById('beginDate4').value; var endDate = document.getElementById('endDate4').value; var url = "/platform/management/statistics/statisticsPage.htm?beginDate="+beginDate+"&endDate="+endDate; access_quantity_ds.proxy = new Ext.data.HttpProxy({ url:url, method:'post' }); access_quantity_ds.reload(); access_quantity_grid.reconfigure(access_quantity_ds,access_quantity_cm); } }] }] })] }); var access_quantity_grid = new Ext.grid.GridPanel({ id: 'access_quantity_grid', ds: access_quantity_ds, cm: access_quantity_cm, region:'center', loadMask:true, height:500, layout:'fit', frame:true, bbar: new Ext.PagingToolbar({ pageSize: 20, store: access_quantity_ds, paramNames:{start: 'pagination.begin', limit: 'pagination.pageSize'}, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg: "没有记录" }) }); //各来源地销售统计 var from_ds = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ //url:'/platform/management/statistics/statisticsCommodity.htm', method:'post' }), autoLoad:false, remoteSort:true, //服务器端排序 reader: new Ext.data.JsonReader({root:'list',totalProperty:'pagination.count'}, [ {name: '_from'}, {name: 'commodity.name',type:'string'}, {name: 's',type:'int'} ]) }); from_ds.load({params:{'pagination.begin':0,'pagination.pageSize':20}}); var from_cm = new Ext.grid.ColumnModel([ {header:'来源地',dataIndex:'_from'}, {header:'商品名',dataIndex:'commodity.name',sortable:false}, {header:'销售数量',dataIndex:'s'} ]); from_cm.defaultSortable = true; var from_form = new Ext.FormPanel({ id:'from_form', border: false, labelAlign:'right', region:'north', height:140, frame:true, items:[new Ext.form.FieldSet({ title:'查询', columnWidth: 1, layout: 'column', border: true, anchor:'50%', labelWidth: 60, items:[{ columnWidth:.4, layout: 'form', border:false, items: [{ width:130, xtype:'datefield', fieldLabel: '日期,从', name: 'beginDate5', format:'Y-m-d', id:'beginDate5' }, { width:130, xtype:'textfield', fieldLabel: '来源地', allowBlank: false, blankText:'来源地不能为空', name: 'from', id:'from' }] },{ columnWidth:.4, layout: 'form', items: [{ width:130, xtype:'datefield', fieldLabel: '到', format:'Y-m-d', name: 'endDate5', id:'endDate5' },{ width:130, xtype:'numberfield', fieldLabel: '商品编号', name: 'commodityId', id:'commodityId' }] },{ columnWidth:.4, layout: 'form', bodyStyle:'padding:20px 5px 0', border:false, items: [{ xtype:'button', text:'查询', handler: function(){ if (!from_form.getForm().isValid()) { return; } var beginDate = document.getElementById('beginDate5').value; var endDate = document.getElementById('endDate5').value; var from = from_form.getForm().findField("from").getValue(); var commodityId = from_form.getForm().findField("commodityId").getValue(); var url = "/platform/management/statistics/statisticsCommodity.htm?beginDate="+beginDate+"&endDate="+endDate+"&from="+from+"&commodityId="+commodityId; from_ds.proxy = new Ext.data.HttpProxy({ url:url, method:'post' }); from_ds.reload(); from_grid.reconfigure(from_ds,from_cm); } }] }] })] }); var from_grid = new Ext.grid.GridPanel({ id: 'from_grid', ds: from_ds, cm: from_cm, region:'center', loadMask:true, layout:'fit', height:500, frame:true, bbar: new Ext.PagingToolbar({ pageSize: 20, store: from_ds, paramNames:{start: 'pagination.begin', limit: 'pagination.pageSize'}, displayInfo: true, displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条', emptyMsg: "没有记录" }) }); [b]问题补充:[/b] 2个alert()之间的代码,是user_trace.statistics.js 里面ippv_form [b]问题补充:[/b] 页面太简单了嘛,直接引用2个js文件就可以了 [b]问题补充:[/b] 请问怎么才是js封装到位了,给个例子嘛

extjs panel autoLoad 加载问题

panel autoLoad 自动加载;只是跨域访问~ 但是总是访问不到;总会出现正在访问的状态~一直都加载不成功~代码我贴出来~ var tabpanel = new Ext.Panel({ region : 'center', title : '地图', autoShow : true, floating : true, bodyBoder : true, border : true, xtype : 'tabpanel', // html : '<iframe id="right" frameborder="0" width="100%" // height="100%"src="http://192.168.1.10:8080/cable/MainWnd3.htm"></iframe>' autoLoad : { script : true, nocache : true, proxy : new Ext.data.ScriptTagProxy({ url : 'http://192.168.1.10:8080/cable/MainWnd3.htm' }) } }); [b]问题补充:[/b] 要是访问的页面返回的不是js、json呢?那是不是不能用autoLoad啦~用html去访问?但是html有缓存~访问的时候需要一个事件才能触发成功我要访问的地图加载~ [b]问题补充:[/b] 不是吧~我把url : 'http://192.168.1.10:8080/cable/MainWnd3.htm' 链接改成~项目里面别的请求action 返回的jsp页面也是没问题的啊,都可以用autoLoad~为什么只有gis地图不行呢?有谁用extjs做过gis项目的?能不能帮忙看看哦

动态改变panel 中items内容

例如:var panel1=new Ext.panel({ id:'123', html'123' }); var panel3=new Ext.panel({ id:'789', html'789' }); var tab=new Ext.TabPanel({ activeTab:0, region:'center', items: [ { title: 'test', border:false, layout:'border', items:[panel3] }, { title: 'test', border:false, layout:'border', items:[panel1] } ] }; var panel2=new Ext.panel({ id:'456', html'456' }); 怎么让动态改变第二个tab页显示panel2? 至于网上说得 先remove 在add 最后调用doLayout(true)只是把panel1移除了,panel2没有显示出来。 就大侠们指点。

EXTJS关于Panel动态ITEMS的问题

为了大家都看明白,先帖上部分代码: var layout = new Ext.Panel({ title: 'XXXXXX', layout: 'fit', layoutConfig: { columns: 1 }, items: [page1] }); layout.render(Ext.getBody()); 好,就这样,我的问题是,如果page1是一个字符串~~比如说我从服务器端获取的值是var str = "page1"(当然也会有"page2"之类的),然后我定义Gird时也用page1=new Ext.grid.GridPanel(...); page2=new Ext.grid.GridPanel(...);这种形式,然后我想显示的时候直接通过items: [str]这种形式显示出对应的界面,比如str = "page1",于是items:[page1]. 但现在是直接page1可以显示,但变成字符str就不行了.大家有没有什么解决方案,在此谢过. 不知道我说明白没有~~~~~ [b]问题补充:[/b] 这个Ext.util.MixedCollection()需要加入什么 JS文件呢? [b]问题补充:[/b] 搞定了,原来map.put("page1",page1); 这句话应该改为map.add("page1",page1); 多谢atian25~你的指导让我学到了很多. 结帖了

Ext 向panel里动态添加textField等组件 如何设定位置!!!

!!Ext 向panel里动态添加textField等组件 如何设定位置!!!

Ext panel为什么加载不进去

--------------------------------------布局---------------------------------- //布局管理 function createLayout(){ new Ext.Viewport({ layout:'border', items:[{ title: '部门管理', collapsible: true, region:'west', width: 100, items:tree, tbar:[{ id:'txt-name', xtype:'textfield' },{ xtype:'button', text:'查找', handler:searchTree }] },{ region:'center', id:'tabs', xtype:'tabpanel', activeTab:0, contentEl:'dms-content', items:panels }] }) } --------------------------------------panel---------------------------------- function createPanel(){ panels = Ext.extend(Ext.Panel, { border:false, layout:'fit', pageSize:20, //分页大小 initComponent:function(){ panel.superclass.initComponent.call(this); this.grid = this.createGrid(); //创建表格 //this.add(this.grid); }, items:[{items:this.grid}], /** * 创建表格部件 */ createGrid:function(){ var ds = new Ext.data.JsonStore({ url:'/KJ222Demo/Demo/getAll', //由etmvc映射到DeviceController类中的getDevices方法 fields:[ 'id','code','name','other' ], baseParams:{ limit:this.pageSize }, totalProperty:'total', root:'demo' }); ds.load({ params:{start:0} }); var grid = new Ext.grid.GridPanel({ store:ds, columns:[ {header:'行号',renderer:function(value, cellmeta, record, rowIndex){return rowIndex + 1;}}, {header:'编号',dataIndex:'code',width:100}, {header:'名称',dataIndex:'name',width:100}, {header:'其它',dataIndex:'other',width:100} ], tbar:[{ text:'增加', iconCls:'tool-add' },'-',{ text:'修改', iconCls:'tool-edit' // iconCls:'tool-edit', // handler:this.editItem.createDelegate(this) },'-',{ text:'删除', iconCls:'tool-cut' // iconCls:'tool-cut', // handler:this.destroyItem.createDelegate(this) },'-',{ text:'查询', iconCls:'tool-find', handler:this.showQueryWindow.createDelegate(this) },'-',{ text:'导出到excel', iconCls:'tool-find', handler:this.onPrint.createDelegate(this) }], bbar:new Ext.PagingToolbar({ store:ds, pageSize:this.pageSize }), border:false }); //grid.render('grid-example'); //grid.getSelectionModel().selectFirstRow(); return grid; } });} ---------------------------------------问题------------------------------------ },{ region:'center', id:'tabs', xtype:'tabpanel', activeTab:0, contentEl:'dms-content', items:panels }] items:panels 没反应 [b]问题补充:[/b] var tree; var panels; 已经定义了,用FF调试,到createGrid:function(){ 这里时就断掉了。 [b]问题补充:[/b] this.grid = this.createGrid(); //创建表格 this.add(this.grid); 定义了。不管怎么调都出来了。。 郁闷

ext panel feature 初始化加载时默认为关闭状态

如何做到使该插件默认为关闭,当前默认行展开, 有没有这方面的属性设置?

Ext panel 的title属性怎么动态改变显示

我做了一个tabpanel 我想改变他标签的显示文字, 比如原来标签是 标签1 标签2 标签3 当我点查询的时候 标签会根据得到数据的多少并显示 变成 标签1(30) 标签2(20) 标签3(40)

MySQL 8.0.19安装教程(windows 64位)

话不多说直接开干 目录 1-先去官网下载点击的MySQL的下载​ 2-配置初始化的my.ini文件的文件 3-初始化MySQL 4-安装MySQL服务 + 启动MySQL 服务 5-连接MySQL + 修改密码 先去官网下载点击的MySQL的下载 下载完成后解压 解压完是这个样子 配置初始化的my.ini文件的文件 ...

Python+OpenCV计算机视觉

Python+OpenCV计算机视觉系统全面的介绍。

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

navicat(内含激活码)

navicat支持mysql的可视化操作,内涵激活码,不用再忍受弹框的痛苦。

HTML期末大作业

这是我自己做的HTML期末大作业,花了很多时间,稍加修改就可以作为自己的作业了,而且也可以作为学习参考

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

基于STM32的电子时钟设计

时钟功能 还有闹钟功能,温湿度功能,整点报时功能 你值得拥有

学生成绩管理系统(PHP + MYSQL)

做的是数据库课程设计,使用的php + MySQL,本来是黄金搭配也就没啥说的,推荐使用wamp服务器,里面有详细的使用说明,带有界面的啊!呵呵 不行的话,可以给我留言!

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

程序员的兼职技能课

获取讲师答疑方式: 在付费视频第一节(触摸命令_ALL)片头有二维码及加群流程介绍 限时福利 原价99元,今日仅需39元!购课添加小助手(微信号:itxy41)按提示还可领取价值800元的编程大礼包! 讲师介绍: 苏奕嘉&nbsp;前阿里UC项目工程师 脚本开发平台官方认证满级(六级)开发者。 我将如何教会你通过【定制脚本】赚到你人生的第一桶金? 零基础程序定制脚本开发课程,是完全针对零脚本开发经验的小白而设计,课程内容共分为3大阶段: ①前期将带你掌握Q开发语言和界面交互开发能力; ②中期通过实战来制作有具体需求的定制脚本; ③后期将解锁脚本的更高阶玩法,打通任督二脉; ④应用定制脚本合法赚取额外收入的完整经验分享,带你通过程序定制脚本开发这项副业,赚取到你的第一桶金!

实用主义学Python(小白也容易上手的Python实用案例)

原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会&nbsp; 【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例

Java8零基础入门视频教程

这门课程基于主流的java8平台,由浅入深的详细讲解了java SE的开发技术,可以使java方向的入门学员,快速扎实的掌握java开发技术!

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

零基础学C#编程—C#从小白到大咖

本课程从初学者角度出发,提供了C#从入门到成为程序开发高手所需要掌握的各方面知识和技术。 【课程特点】 1 由浅入深,编排合理; 2 视频讲解,精彩详尽; 3 丰富实例,轻松易学; 4 每章总结配有难点解析文档。 15大章节,228课时,1756分钟与你一同进步!

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

多功能数字钟.zip

利用数字电子计数知识设计并制作的数字电子钟(含multisim仿真),该数字钟具有显示星期、24小时制时间、闹铃、整点报时、时间校准功能

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

想学好JAVA必须要报两万的培训班吗? Java大神勿入 如果你: 零基础想学JAVA却不知道从何入手 看了一堆书和视频却还是连JAVA的环境都搭建不起来 囊中羞涩面对两万起的JAVA培训班不忍直视 在职没有每天大块的时间专门学习JAVA 那么恭喜你找到组织了,在这里有: 1. 一群志同道合立志学好JAVA的同学一起学习讨论JAVA 2. 灵活机动的学习时间完成特定学习任务+每日编程实战练习 3. 热心助人的助教和讲师及时帮你解决问题,不按时完成作业小心助教老师的家访哦 上一张图看看前辈的感悟: &nbsp; &nbsp; 大家一定迫不及待想知道什么是极简JAVA学习营了吧,下面就来给大家说道说道: 什么是极简JAVA学习营? 1. 针对Java小白或者初级Java学习者; 2. 利用9天时间,每天1个小时时间; 3.通过 每日作业 / 组队PK / 助教答疑 / 实战编程 / 项目答辩 / 社群讨论 / 趣味知识抢答等方式让学员爱上学习编程 , 最终实现能独立开发一个基于控制台的‘库存管理系统’ 的学习模式 极简JAVA学习营是怎么学习的? &nbsp; 如何报名? 只要购买了极简JAVA一:JAVA入门就算报名成功! &nbsp;本期为第四期极简JAVA学习营,我们来看看往期学员的学习状态: 作业看这里~ &nbsp; 助教的作业报告是不是很专业 不交作业打屁屁 助教答疑是不是很用心 &nbsp; 有奖抢答大家玩的很嗨啊 &nbsp; &nbsp; 项目答辩终于开始啦 &nbsp; 优秀者的获奖感言 &nbsp; 这是答辩项目的效果 &nbsp; &nbsp; 这么细致的服务,这么好的氛围,这样的学习效果,需要多少钱呢? 不要1999,不要199,不要99,只要9.9 是的你没听错,只要9.9以上所有就都属于你了 如果你: 1、&nbsp;想学JAVA没有基础 2、&nbsp;想学JAVA没有整块的时间 3、&nbsp;想学JAVA没有足够的预算 还等什么?赶紧报名吧,抓紧抢位,本期只招300人,错过只有等时间待定的下一期了 &nbsp; 报名请加小助手微信:eduxy-1 &nbsp; &nbsp;

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

机器学习实战系列套餐(必备基础+经典算法+案例实战)

机器学习实战系列套餐以实战为出发点,帮助同学们快速掌握机器学习领域必备经典算法原理并结合Python工具包进行实战应用。建议学习顺序:1.Python必备工具包:掌握实战工具 2.机器学习算法与实战应用:数学原理与应用方法都是必备技能 3.数据挖掘实战:通过真实数据集进行项目实战。按照下列课程顺序学习即可! 课程风格通俗易懂,用最接地气的方式带领大家轻松进军机器学习!提供所有课程代码,PPT与实战数据,有任何问题欢迎随时与我讨论。

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

MFC一站式终极全套课程包

该套餐共包含从C小白到C++到MFC的全部课程,整套学下来绝对成为一名C++大牛!!!

【数据结构与算法综合实验】欢乐连连看(C++ & MFC)案例

这是武汉理工大学计算机学院数据结构与算法综合实验课程的第三次项目:欢乐连连看(C++ & MFC)迭代开发代码。运行环境:VS2017。已经实现功能:开始游戏、消子、判断胜负、提示、重排、计时、帮助。

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

u-boot-2015.07.tar.bz2

uboot-2015-07最新代码,喜欢的朋友请拿去

相关热词 c# 开发接口 c# 中方法上面的限制 c# java 时间戳 c#单元测试入门 c# 数组转化成文本 c#实体类主外键关系设置 c# 子函数 局部 c#窗口位置设置 c# list 查询 c# 事件 执行顺序
立即提问
相关内容推荐