Extjs Sencha:动态创建时设置Dataview XTemplate
我从服务器上获得了一些数据,根据情况可能会带来不同的字段,因此我得到的是:Extjs Sencha:动态创建时设置Dataview XTemplate,extjs,view,field,Extjs,View,Field,我从服务器上获得了一些数据,根据情况可能会带来不同的字段,因此我得到的是: //This is the way i'm attaching the newly created template to the view //Still no success function processDataMethod(response){ //some processing here... var details = Ext.widget('details');
//This is the way i'm attaching the newly created template to the view
//Still no success
function processDataMethod(response){
//some processing here...
var details = Ext.widget('details');
details.config.itemTpl = new Ext.XTemplate(tplFields);
}
Ext.Ajax.request({
url: '...',
...,
success: function (response, request) {
var combinedData = processDataMethod(response);
operation.setResultSet(Ext.create('Ext.data.ResultSet', {
records: combinedData,
total: combinedData.length
}));
operation.setSuccessful();
operation.setCompleted();
if (typeof callback == "function") {
callback.call(scope || that, operation);
currentList.up().push(Ext.widget('details'));
}
}
});
非常感谢您的帮助,谢谢 你必须区分许多事情:
返回一个DOM元素(Ext.DOM.element)。这没有方法currentList.up()
push()
- 使用
您可以传递像Ext.widget('details',config)
这样的配置来创建具有自定义模板和自定义数据的实例{itemTpl:yourTemplate,data:yourData}
- 要在创建组件后更新组件,您可以始终执行
someWidget.update(数据)代码>
- 可以使用
选项将组件呈现为HTML元素renderTo
- 组件可以以不同的方式附加到现有组件,并且可以以不同的方式更新整个布局或其部分。如果要呈现为HTML元素,则不需要这样做
这有助于您发现问题吗?您可以发布一些您试图实现的示例代码吗?您正在创建一个我假设的表单?哪些字段是动态的?你在说什么模板?这些自定义字段是否有自己的模板?示例代码将澄清很多问题。我编辑了文章并输入了一些代码,我成功地创建了XTemplate,但我无法绑定视图和模板:我想不出一个名为“details”的xtype。这是什么样的部件?您也可以显示这个的来源吗?一般来说:如果您使用Ext.widget创建组件的实例,您可以/需要将选项(包括模板)作为第二个参数传递。在您的例子中:
Ext.widget('details',{itemTpl:yourTemplate})代码>其中var yourTemplate=new Ext.XTemplate(tplFields)代码>。如果您在多个位置使用此yourTemplate变量,请将其放在两个函数的更一般的范围内。做得好smhg!!我在这方面失败了:我用Ext.widget创建了一个视图实例,然后我推另一个Ext.widget实例,而不是我之前创建的那个实例。。。谢谢你,朋友!!