2011-12-14 59 views
0

从此示例http://www.smartclient.com/smartgwt/showcase/#tree_databinding_local开始,我开始动态实现自己的树结构(TreeGrid)。当我尝试渲染它时,我得到这个错误(标题)。SmartGWT - 创建组件后无法更改配置属性“x”

public class ProjectTreeGridScreen extends Screen { 

    Tree tree; 

    @Override 
    protected void onLoad() { 
    super.onLoad(); 

    TreeGrid treeGrid = new TreeGrid(); 

    setPageTitle(Util.C.projectListTitle()); 

    treeGrid.setWidth(600); 
    treeGrid.setHeight(400); 

    TreeGridField projectTree = new TreeGridField("ProjectName", "Project Tree"); 
    TreeGridField projectPath = new TreeGridField("ProjectPath", "Complete path"); 
    TreeGridField projectDescription = new TreeGridField("ProjectDescription", "Description"); 
    TreeGridField projectInfo = new TreeGridField("ProjectInfo", "Information"); 

    treeGrid.setFields(projectTree, projectPath, projectDescription, projectInfo); 

    treeGrid.setData(tree); 

    add(treeGrid); 

    } 

    @Override 
    protected void onInitUI() { 
    super.onInitUI(); 
    tree = new Tree(); 

    tree.setModelType(TreeModelType.PARENT); 
    tree.setNameProperty("ProjectName"); 
    tree.setIdField("ProjectItem"); 
    tree.setParentIdField("ProjectParent"); 

    tree.setShowRoot(true); 

    populateProjects(); 

    } 

    protected void populateProjects() { 

    Util.PROJECT_SVC.visibleProjects(
     new ScreenLoadCallback<List<Project>>(this) { 
     @Override 
     public void preDisplay(final List<Project> result) { 
     tree.setData(ProjectTreeGridBuilder.fromRepositories(result)); 
     } 
    }); 

    } 

} 
+1

显示实际的错误完整的错误信息,这很重要,这就是为什么框架显示它:) – 2011-12-15 01:17:12

回答

1

什么叫“X”是什么意思?通常情况下,如果组件已经在窗口上绘制(隐式或显式调用绘制),则无法更改其属性值。所以唯一可能的解决方案是每次改变时都用新的值重新创建对象。

+0

这就是我做的thx。我没有发布我的解决方案。每次我完成从服务器获取数据时,我都会创建我的窗口(添加函数)。我想在获取数据时将我的数据填充到网格中,但我想你不能这么做...... – fneron 2011-12-18 22:42:10

相关问题