0

我有一个网格视图,在这个网格面板上方,我添加了一个模板:

....items: [{
    xtype: "panel",
    html: new Ext.XTemplate("<div style='margin:5px;'><img src='{imagelink}'/><b>ProductId: {productId}</b></div>")
    },

    {
    xtype: 'grid',
    id:'productGrid',
    height:300,
    columns: [
    {
        header: 'Titel', 
        dataIndex: "title",
        flex:1
    },
    {
        header: 'Typ', 
        dataIndex: "type",
        flex:1
    }
    ]
}]...

我的网格值的数据来自我的控制器。但是如何将值动态添加到我的模板中,以便可以填充占位符“imagelink”和“productId”。我必须在我的模型中做点什么吗?在我的商店中,我得到了填充网格视图的值,我还可以在这个 json 中添加模板的占位符吗?谢谢!!

4

2 回答 2

2

您需要检索对包含 XTemplate 的组件的引用并调用模板的覆盖方法,提供一个新的 el 和一组数据以用于覆盖模板。

请参阅文档:http ://docs.sencha.com/extjs/4.1.3/#!/api/Ext.XTemplate-method-overwrite

这里的 JSFiddle 示例:http: //jsfiddle.net/prq7Y/

在 MVC 之后,您应该XTemplateController. 业务逻辑不应该驻留在模型定义中!观察面板的渲染事件(在控制器中)并相应地使用overwrite它们XTemplate!在我的示例中,我使用了一个按钮来更清楚地了解需要发生的事情。可以将相同的代码放置在驻留在控制器中的事件侦听器中。

于 2013-06-26T12:46:35.977 回答
0

如果要填充占位符,则必须调用update()网格(http://docs.sencha.com/extjs/4.2.1/#!/api/Ext.grid.Panel-method-update) ,传递正确的数据。如果您想在选择网格中的特定记录时执行此操作,您需要在网格视图(如itemclick)和update()基于选择的记录数据的网格中键入一个事件。

于 2013-06-26T11:28:17.730 回答