1

我是 ExtJS 开发的新手。我有来自 2 个不同数据存储的数据(例如:DepartmentsStore 和EmployeesStore)。我正在尝试在父表中显示部门列表,并将每个部门中的所有员工作为嵌套表显示到 UI 上的父部门表中。

我使用 XTemplates 加载数据并将其绑定到我的主面板。但是我在嵌套 XTemplates 时遇到问题。我不确定我是否做错了什么,非常感谢任何帮助。这是 Xtemplate javascript 代码片段,

  var tplEmployeesDetails = new Ext.XTemplate(
        '<table width="100%">',
        '<tr><td>Employee First Name</td>',
        '<td>Employee Last Name</td>',
        '<td>Email</td></tr>',

        '<tpl for=".">',
        '<tpl for="data">',
            '<tr><td>{DBxFIRSTNAME}</td>',
            '<td>{DBxLASTNAME}</font></td>',
            '<td>{DBxEMAIL}</td></tr>',
        '</tpl>',
        '</tpl>',
        '</table>'
);

var tplDepartmentDetails = new Ext.XTemplate(
    '<tpl for=".">',
    '<tpl for="data">',
        '<b>Department Detail:</b>',
        '<table>',
        '<tr><td>Department Name</td><td>{DBxDEPTNAME}</td></tr>',
        '<tr><td>Collateral Name</td><td>{DBxDEPTNAME}</td></tr>',

        'Employees Under Department:',
        '{[ this.renderEmployees(values.DBxDEPTID)]}',
        '</td></tr>',
        '{% } %}',

        '</table>',
    '</tpl>',
    '</tpl>',   

    {
        renderEmployees: function(DEPTID)
         { 
             appEngine.autoPost({
                 sysExtScope: 'false',
                 sysIgnoreExtension: 'true',
                 sysAction: 'getdbtable',
                 sysProjectName: 'OrgProject',
                 sysEngineApp: 'OrgApp',
                 sysEngineService: 'DepartmentService',
                 myRoot: 'SessionRespTable',
                 sysEngineOrderBy: 'DEPTID DESC',
                 DBxDEPTID:  DEPTID,
                 myFields: DepartmentServiceFields
              },function(EmployeesStore, Records, Resultflag, Options)
              {
                  employeesStore = EmployeesStore.getStore();

                  //Issue: THIS DOES NOT SEEM TO RETURN THE tplEmployeesDetails Xtemplate markup!!
                  return tplEmployeesDetails.apply(collatPolicyStore);
              });
         }
    }
);

tplDepartmentDetails.append(mainPanel.body, departmentStore);
4

1 回答 1

0

在我看来,当您执行 appEngine.autoPost 时,您正在从异步函数返回一个字符串。为此,您的 renderEmployees 函数需要同步返回字符串。XTemplate 没有异步返回字符串的内部函数的概念。

于 2013-11-08T22:34:33.247 回答