2011-01-12 1 views
0

TreeNodeCheckChangedがASP.Netアプリケーションで動作していません。私のASP.NetアプリケーションでTreeNodeCheckChangedが動作しない

<asp:TreeView ID="TreeView1" ShowCheckBoxes="All" runat="server"      
    OnTreeNodeCheckChanged="TreeView1_TreeNodeCheckChanged"> 
</asp:TreeView> 

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!this.Page.IsPostBack) 
    { 
     TreeView(); //bind manually 
    } 
} 

どうすればこの問題を解決できますか?

答えて

2

あなたはどうやってTreeViewを縛っていますか?

私はあなたがEventHandlerはAsp.netのライフサイクルに到達する前に関係なくthis.Page.IsPostback

のあなたのTreeViewを再バインドした場合、あなたがする必要があり、すべてのイベントを抑制します(何でも、またはPage_Init)すべてのPage_Loadに結合されていると思います育てられた、例えばあなたが手動で強制する必要が
:あなたのOnTreeNodeCheckedChangedイベント

は、あなただけが目的のイベントハンドラが


編集を実行した後に再バインドする必要がポストバック時に

if(!this.Page.IsPostBack) 
{ 
    // insert your initial binding of your treeview here 
} 

時にバインドPostBackTreeViewはレンダリングされたchecのCheckedプロパティを変更しません。Postback kboxes。 TreeNodeCheckChanged イベントがポスト バックを起こさない チェックボックスを変更し、バックポストの上に発射されていても

TreeView.TreeNodeCheckChanged Event

+0

私はすでにそのコードを置きます。 – kst

+0

あなたはしませんでした。マークアップにはDataSourceIDプロパティが割り当てられていません。つまり、TreeViewに何かが表示された場合は、DataSourceIDプロパティまたはDataSourceプロパティを手動で割り当てて、.DataBind()を呼び出します。または、Nodesプロパティに手動でアクセスして操作します。さもなければあなたのTreeViewは空であり、ノードがないのでCheckedChangedイベントを発生させることができません – citronas

+0

if(!IsPostBack){}内のページ読み込みで手動でバインドしますが、CheckedChangedイベントは起動できません。 – kst

関連する問題