Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从数据库加载带有数据的编辑用户表单_Javascript_Extjs_Castle Monorail - Fatal编程技术网

Javascript 从数据库加载带有数据的编辑用户表单

Javascript 从数据库加载带有数据的编辑用户表单,javascript,extjs,castle-monorail,Javascript,Extjs,Castle Monorail,我有一个显示成员列表的网格。网格有一个名为“编辑”的actioncolumn,其中有一个图标。如果用户单击编辑图标,窗口将重定向到包含编辑用户表单的另一个页面 现在,我的存储和网格的代码如下: var userstore = Ext.create('Ext.data.Store', { storeId: 'viewUsersStore', model: 'Configs', autoLoad: true, proxy: {

我有一个显示成员列表的网格。网格有一个名为“编辑”的actioncolumn,其中有一个图标。如果用户单击编辑图标,窗口将重定向到包含编辑用户表单的另一个页面

现在,我的存储和网格的代码如下:

    var userstore = Ext.create('Ext.data.Store', {
      storeId: 'viewUsersStore',
      model: 'Configs',
      autoLoad: true,
      proxy: {
        type: 'ajax',
        url: '/user/getuserviewdata.castle',
        reader: { type: 'json', root: 'users' },
        listeners: {
        exception: function (proxy, response, operation, eOpts) {
            Ext.MessageBox.alert("Error", "Session has timed-out. Please re-login and 
             try again.");
      }
    }
  }
});

var grid = Ext.create('Ext.grid.Panel', {
    id: 'viewUsersGrid',
    title: 'List of all users',
    store: Ext.data.StoreManager.lookup('viewUsersStore'),
    columns: [
        //{header: 'ID', dataIndex: 'id', hidden: true},
        {header: 'Username', dataIndex: 'username'},
        {header: 'Full Name', dataIndex: 'fullName'},
        {header: 'Company', dataIndex: 'companyName'},
        {header: 'Latest Time Login', dataIndex: 'lastLogin'},
        {header: 'Current Status', dataIndex: 'status'},
        {header: 'Edit', 
         menuDisabled: true, 
         sortable: false, 
         xtype: 'actioncolumn', 
         width: 50, 
         items: [{ 
            icon: '../../../Content/ext/img/icons/fam/user_edit.png', 
            handler: function (grid, rowIndex, colIndex){
                var rec = userstore.getAt(rowIndex); 
                alert("Edit " + rec.get('username')+ "?");  
                EditUser(rec.get('id')); 
                } 
             }] 
        }
    ]

});

function EditUser(id) {

    window.location = "/user/index.castle";

}
当用户单击编辑图标时,将调用函数EditUser(id)。在该函数中,window.location将用户重定向到编辑用户表单(这就是url所代表的)

现在我的问题是:如何将成员数据从数据库加载到编辑用户表单中

换句话说,如果用户单击编辑图标,他/她应该被重定向到编辑用户表单/窗口,然后该表单/窗口应该(自动)从数据库加载成员数据(即用户名、全名等)(每个成员都有一个唯一的id)

我使用的不是php,而是ExtJS和CastleMonorail(MVC)。我尝试使用loadRecord(rec),但问题是网格记录不包含编辑用户表单中出现的所有数据字段,因此需要从数据库而不是记录中加载数据

例如,“编辑用户”表单有一个名为“权限”的复选框组,该复选框组不在网格中

此外,编辑的成员数据需要保存回数据库

有没有人知道该怎么做

  • 你为什么要用extjs制作一个多页面的应用程序?而不是一个单页应用程序?有什么好处

  • 您需要用户的id。这是从网格传递的。然后使用model.load()将该用户从数据库加载到模型中。可以使用form.loadRecord()将模型加载到表单中,它将根据表单字段的名称自动填充

  • 要加载模型并将其加载到表单中,可以执行以下操作:

    Model.load(1, {
      callback: function(record){
        form.loadRecord(record); //any matching form names will get loaded into form
      }
    });
    
    三个。您应该为表单使用名称奇怪的“configs”模型。您应该将代理从存储移动到模型。存储将继承其模型代理

    要将代理从存储区移动到模型,只需在代码中删除它,然后将“proxy”属性添加到模型中。无论是在商店还是在模型上,它们都是相同的

  • 你为什么要用extjs制作一个多页面的应用程序?而不是一个单页应用程序?有什么好处

  • 您需要用户的id。这是从网格传递的。然后使用model.load()将该用户从数据库加载到模型中。可以使用form.loadRecord()将模型加载到表单中,它将根据表单字段的名称自动填充

  • 要加载模型并将其加载到表单中,可以执行以下操作:

    Model.load(1, {
      callback: function(record){
        form.loadRecord(record); //any matching form names will get loaded into form
      }
    });
    
    三个。您应该为表单使用名称奇怪的“configs”模型。您应该将代理从存储移动到模型。存储将继承其模型代理


    要将代理从存储区移动到模型,只需在代码中删除它,然后将“proxy”属性添加到模型中。无论是在商店还是在模型上,它们都是相同的。

    如果您在第一个代码块中修复了缩进,那就太好了。谢谢。:)很抱歉。刚刚修复了它。一个
    Ext.Ajax.Request
    来获取剩余的数据怎么样?我该怎么做?我知道在删除用户时如何使用Ajax请求,但在编辑用户时如何使用?如果您在第一个代码块中修复了缩进,那就太好了。谢谢。:)很抱歉。刚刚修复了它。一个
    Ext.Ajax.Request
    来获取剩余的数据怎么样?我该怎么做?我知道在删除用户时如何使用Ajax请求,但在编辑用户时如何使用Ajax请求?1。我被要求将用户重定向到编辑用户(不一定是因为这样做有利)。2.我到底要怎么做?我知道如何使用var formpanel=Ext.getCmp('EditUserForm');formpanel.getForm().loadRecord(rec);但我不知道在我的例子中如何使用Model.load()和form.loadRecord()。3.如何将代理从存储移动到模型?谢谢你的帮助。我是Ext JS的新手,正在工作中学习。我被要求将用户重定向到编辑用户(不一定是因为这样做有利)。2.我到底要怎么做?我知道如何使用var formpanel=Ext.getCmp('EditUserForm');formpanel.getForm().loadRecord(rec);但我不知道在我的例子中如何使用Model.load()和form.loadRecord()。3.如何将代理从存储移动到模型?谢谢你的帮助。我是Ext JS的新手,正在工作中学习。