我正在尝试选择/取消选择符合条件的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;
}
}
如何解决问题?
答案 0 :(得分:0)
此问题的原因是您的代码是在网格回调期间实现的。由于回调响应仅包含有关启动它的控件的信息,因此在服务器端代码中完成的修改不会出现在客户端。一种可能的解决方案是将两个控件(ASPxGridView和ASPxTreeList)添加到MS UpdatePanel,并将这些控件的EnableCallbacks属性(ASPxGridView和ASPxTreeList)设置为false。在这种情况下,MS UpdatePanel将拦截回发和"转换"他们回调。此外,两个控件都将在这些回调期间更新。