首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XTemplate与网格的结合

XTemplate与网格的结合
EN

Stack Overflow用户
提问于 2012-10-23 11:20:05
回答 1查看 482关注 0票数 0

我试图使用XTemplate来显示网格的行信息:

代码语言:javascript
复制
    List<User> users = new ArrayList<User>();
    users.add(new User("John", "Smith"));
    users.add(new User("Bob", "James"));
    UserList list = new UserList(users);

    XTemplate tpl = XTemplate.create(getTemplate());
    tpl.applyTemplate(Util.getJsObject(list));

    RowExpander expander = new RowExpander();
    if (showExpand){
        expander.setTemplate(tpl);
        columns.add(expander);
    }

下面是getTemplate()的代码:

代码语言:javascript
复制
public native String getTemplate() /*-{
  return ['<p>Details: ',
          '<tpl for=".">',       
          '<p>{#}</p>',          // use current array index to autonumber
          '</tpl></p>'
         ].join("");
}-*/;

然而,我对XTemplate非常陌生,而且我似乎无法使它发挥作用。我只是用样本复制了一些资料。

基本上,我要做的只是将上面的List<User>呈现为:

代码语言:javascript
复制
Details:
1 First Name: John - Last Name: Smith
2 First Name: Bob - Last Name: James

下面是用户UserList模型:

代码语言:javascript
复制
class User extends BaseModelData {
    public User(String firstName, String lastName){
        set("firstname", firstName);
        set("lastname", lastName);
    }
}

class UserList extends BaseModelData {
    public UserList(List<User> list){
        set("users", list);
    }
    public List getUsers(){
        return get("users");
    }
    public void setUsers(List users) {
        set("users", users);
    }
}

网格就是这样声明的:

代码语言:javascript
复制
Grid grid = new Grid<ModelData>(new ListStore<ModelData>(), new ColumnModel(columns));

以下是ListStore的详细信息:

代码语言:javascript
复制
ListStore<ModelData> store = grid.getStore();
store.removeAll();
store.add(list); // Where list is List<Map<String, String>> data
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-23 13:19:40

信息如此之少很难说(网格声明在哪里?)( ListStore),但是假设您正在构建一个ListStore<UserList>,您的模板需要遍历UserList实例中的users属性,而不是.,这意味着UserList对象本身(不能迭代):

代码语言:javascript
复制
public native String getTemplate() /*-{
  return ['<p>Details: ',
      '<tpl for="users">',       
      '<p>{#}</p>',          // use current array index to autonumber
      '</tpl></p>'
     ].join("");
}-*/;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13029312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档