2011-02-02 79 views
0

我试图选择/取消选择符合条件的aspxtreelist节点。当用户单击一行并且它触发了一个由服务器端eventhandler处理的事件。当我调试代码everthing ok。选择工作,但在浏览器端选择保持与以前相同。ASPxTreelist服务器端节点选择不起作用

protected void grid_FocusedRowChanged(object sender, EventArgs e) 
    { 
     menutree.UnselectAll(); 
     EUserRole role = (EUserRole)grid.GetRow(grid.FocusedRowIndex); 
     long roleguid = role.Guid; 

     TreeListNodeIterator iterator = new TreeListNodeIterator(menutree.RootNode); 
     while (iterator.GetNext() != null) 
     { 
      if ((long)iterator.Current["RoleGuid1"] == roleguid) 
       iterator.Current.Selected = true; 
     } 

    } 

如何解决问题?

回答

0

此问题的原因是您的代码在网格回调期间执行。由于回调响应仅包含关于启动它的控件的信息,因此您在服务器端代码中完成的修改不会出现在客户端。一个可能的解决方案是将两个控件(ASPxGridView和ASPxTreeList)添加到MS UpdatePanel,并将这些控件的EnableCallbacks属性(ASPxGridView和ASPxTreeList)设置为false。在这种情况下,MS UpdatePanel将拦截回传并将它们“转换”为回调。此外,这两个控件将在这些回调期间更新。

+0

谢谢DevExpressTeam。我新的在asp.net controls.my问题解决了。 – Enes 2011-02-02 13:58:42