TreeNodeCheckChanged在我的ASP.Net应用程序中不起作用

时间:2011-01-12 08:09:17

标签: asp.net treeview

TreeNodeCheckChanged无法在我的ASP.Net应用程序中运行。

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

您如何约束TreeView

我猜你对每个Page_Load(或Page_Init,无论如何)都具有约束力,无论this.Page.IsPostback

如果您在Asp.net生命周期中达到TreeView之前重新绑定EventHandler,则会取消所有应引发的事件,例如:您的OnTreeNodeCheckedChanged活动

仅绑定

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

回发后,您必须在执行所需的事件处理程序后重新绑定


修改
您需要手动强制PostBack,因为TreeView不会触发Postback更改已呈现复选框的Checked属性。

  

尽管TreeNodeCheckChanged   事件在回发后被触发,正在改变   复选框不会导致帖子   回来。

TreeView.TreeNodeCheckChanged Event