ASPxTreelist服务器端节点选择不起作用

时间:2011-02-02 13:21:51

标签: asp.net devexpress

我正在尝试选择/取消选择符合条件的aspxtreelist节点。当用户单击一行并触发由服务器端事件处理程序处理的事件时。当我调试代码时,ok.selection工作但在浏览器端选择仍然与之前相同。

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;
        }

    }

如何解决问题?

1 个答案:

答案 0 :(得分:0)

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