我试图使用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下面是用户和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 = 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发布于 2012-10-23 13:19:40
信息如此之少很难说(网格声明在哪里?)( ListStore),但是假设您正在构建一个ListStore<UserList>,您的模板需要遍历UserList实例中的users属性,而不是.,这意味着UserList对象本身(不能迭代):
public native String getTemplate() /*-{
return ['<p>Details: ',
'<tpl for="users">',
'<p>{#}</p>', // use current array index to autonumber
'</tpl></p>'
].join("");
}-*/;https://stackoverflow.com/questions/13029312
复制相似问题