2011-02-02 21 views
0

ユーザーが行をクリックしてサーバー側のイベントハンドラーによって処理されるイベントを発生させた場合、criteria.whenを満たすaspxtreelistノードを選択/選択解除しようとしています。選択は機能しますが、ブラウザ側の選択は、前回と同じままです。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に追加し、これらのコントロール(ASPxGridViewとASPxTreeList)のEnableCallbacksプロパティをfalseに設定することです。この場合、MS UpdatePanelはポストバックをインターセプトし、コールバックに「変換」します。また、これらのコールバック中に両方のコントロールが更新されます。

+0

DevExpressTeamありがとうございます。私はasp.net controls.my poblemで新しいが解決されました。 – Enes

関連する問題