2011-02-02 76 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