下面是JavaScript文件,它是我的extjs 4 MVC应用程序的根应用程序文件。
我完全按照以下说明操作,并使用IIS 7作为web服务器:
http://docs.sencha.com/ext-js/4-1/#/指南/应用程序_体系结构
并按照以下说明为框架配置IIS:
http://www.sencha.com/forum/showthread.php?33266-JSON&p=229858&viewfull=1#post229858
我想获得一个ASP.NET用户控件(ascx文件)并将其添加到我的页面中。它已经注册了,但Sencha框架似乎接管了它,并忽略了我页面中的内容。我只是把MVC教程中的index.html文件做成了一个aspx页面,并做了一些小的调整。如何使控件显示?如果这不可能,你是否建议我在ascx文件中引用这个app.js文件(并将其重命名为control_x.js而不是apps),然后将该用户控件(ascx)和另一个(目前不起作用)粘贴到ASP.NET(aspx)页面中?从本质上讲,我不想在整个应用程序中依赖这个框架,只是不想自己构建的控件。
app.js:
Ext.application({
requires: ['Ext.container.Viewport'],
name: 'AM',
appFolder: 'app',
controllers: [
'Users'
],
launch: function () {
Ext.create('Ext.container.Viewport', {
layout: 'fit',
items: {
xtype: 'userlist'
}
});
}
});
Users.js(控制器):
Ext.define('AM.controller.Users', {
extend: 'Ext.app.Controller',
stores: [
'Users'
],
models: [
'User'
],
views: [
'user.List',
'user.Edit'
],
init: function () {
console.log('Initialized Users! This happens before the Application launch function is called');
this.control({
'viewport > panel': {
render: this.onPanelRendered
},
'viewport > userlist': {
itemdblclick: this.editUser
},
'useredit button[action=save]': {
click: this.updateUser
}
});
},
onPanelRendered: function() {
//console.log('The panel was rendered');
},
editUser: function(grid, record) {
//console.log('Double clicked on ' + record.get('name'));
var view = Ext.widget('useredit');
view.down('form').loadRecord(record);
},
updateUser: function(button) {
//console.log('clicked the Save button');
var win = button.up('window'),
form = win.down('form'),
record = form.getRecord(),
values = form.getValues();
record.set(values);
win.close();
// synchronize the store after editing the record
this.getUsersStore().sync();
}
});
这里的答案是性能。如果您正在为应用程序使用JavaScript,请将其全部放在同一页上。否则,当您切换页面时,您的JavaScript将不得不重新加载。