0

XTemplate を使用してグリッドの行情報を表示しようとしています:

    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() のコードは次のとおりです。

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

しかし、私は XTemplate にまったく慣れていないので、それを機能させることができないようです。サンプルと一緒にソースをコピーしただけです。

基本的に、私がやろうとしているのは、上記List<User>を次のようにレンダリングすることです。

Details:
1 First Name: John - Last Name: Smith
2 First Name: Bob - Last Name: James

UserおよびUserListモデルは次のとおりです。

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);
    }
}

Grid の宣言方法は次のとおりです。

Grid grid = new Grid<ModelData>(new ListStore<ModelData>(), new ColumnModel(columns));

これは ListStore の詳細です。

ListStore<ModelData> store = grid.getStore();
store.removeAll();
store.add(list); // Where list is List<Map<String, String>> data
4

1 に答える 1

1

情報が少ないので言うのは難しいですが (Grid 宣言はどこですか? ListStore)、 を構築していると仮定すると、テンプレートは UserList オブジェクト自体を示すではなく、UserList インスタンス内ListStore<UserList>のプロパティを反復処理する必要があります (これは可能です)。反復しないでください):users.

public native String getTemplate() /*-{
  return ['<p>Details: ',
      '<tpl for="users">',       
      '<p>{#}</p>',          // use current array index to autonumber
      '</tpl></p>'
     ].join("");
}-*/;
于 2012-10-23T13:19:40.450 に答える