相关疑难解决方法(0)

GWT:如何以编程方式重新加载CellBrowser?

我正在使用GWT 2.1的CellBrowser和自定义TreeViewModel.TreeViewModel又使用a AsyncDataProvider来动态获取数据.这一切都很好用 - 当用户点击节点时,我的AsyncDataProvider通过RPC获取结果,并且CellBrowser尽职尽责地显示它们.

我觉得无法解决这个问题很愚蠢,但我怎么能以编程方式告诉CellBrowser重新加载(和显示)数据呢?我猜我需要以某种方式为我的根节点获取AsyncDataProvider的句柄,然后在其上调用updateRowData()和updateRowCount(),但我没有看到查询浏览器(或其模型)的明显方法对于根DataProvider.

我想我可以在我的AsyncDataProvider构造函数中添加代码来查找null参数,并通过这种方式识别"嘿,我是根"并在某处存储引用,但这似乎是hackish.当然有更好的方法来做到这一点.

在这里抛弃这么多代码的道歉,但我不知道如何将其简化为更简单的东西并仍然提供足够的上下文.

我的AsyncDataProvider:

private static class CategoryDataProvider extends AsyncDataProvider<Category>
{           
    private Category selectedCategory;

    private CategoryDataProvider(Category selectedCategory)
    {
        this.selectedCategory = selectedCategory;
    }

    @Override
    protected void onRangeChanged(HasData<Category> display)
    {
        new AsyncCall<List<Category>>()
        {
            @Override
            protected void callService(AsyncCallback<List<Category>> cb)
            {
                // default to root
                String categoryId = "-1";
                if (selectedCategory != null)
                {
                    categoryId = selectedCategory.getCategoryId();
                }

                // when a category is clicked, fetch its child categories
                service.getCategoriesForParent(categoryId, cb);
            }

            @Override
            public void …
Run Code Online (Sandbox Code Playgroud)

gwt cellbrowser

9
推荐指数
2
解决办法
6640
查看次数

标签 统计

cellbrowser ×1

gwt ×1