这似乎是一项简单的任务,但在搜索文档的某个地方 - 我错过了连接。
我有一个存储在 GAE 中的菜单,可以返回查询结果:
public String[] getMeals() throws NotLoggedInException {
checkLoggedIn();
PersistenceManager pm = getPersistenceManager();
List<String> meals = new ArrayList<String>();
try {
Query q = pm.newQuery(Meal.class, "user == u");
q.declareParameters("com.google.appengine.api.users.User u");
q.setOrdering("createDate");
List<Meal> myMeals = (List<Meal>) q.execute(getUser());
for (Meal myMeal : myMeals) {
meals.add(myMeal.getMealID());
}
} finally {
pm.close();
}
return (String[]) meals.toArray(new String[0]);
}
有了这些结果,我想将它绑定到 FlexTable。使用 stockwatcher 示例,我设法将我的 ID 绑定到 FlexTable,但是我缺少如何将结果集中的其他字段与它绑定的概念。(我在GAE中的字段是mealID、mealType和mealDate)
从上面,我们可以看到我将 mealID 扔进了一个列表。我也知道我的其他字段必须存在于查询中,因为我没有做任何事情来过滤它们。事实上,如果我将代码更改为:
膳食。添加(myMeal.getMealID(),myMeal.getMealType(),myMeal.getMealDate());
它返回所有数据,但 flex 表将每个项目视为一个新行,而不是一行中的三个字段。
所以我的问题是:我应该如何捕获我的记录并将它们发送到我的 FlexTable 以便我可以将 FlexTable 绑定到结果集?
供参考,客户端代码:
private void loadMeals() {
// load meals from server service MealService
mealService.getMeals(new AsyncCallback<String[]>() {
public void onFailure(Throwable error) {
handleError(error);
}
public void onSuccess(String[] meals) {
displayMeals(meals);
}
});
}
private void displayMeals(String[] meals) {
for (String meal : meals) {
displayMenu(meal, meal, meal);
}
}
flextable 填充如下:
餐ID | 餐食类型 | 用餐日期
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
我希望它像这样填充:
餐ID | 餐食类型 | 用餐日期
1 | 早餐 | 2012
年 12 月 22 日 2 | 午餐 | 2012年 12 月 22
日 3 | 零食 | 2012 年 12 月 23 日
提前感谢您的意见!