TreeNodeCheckChanged не работает в моем приложении ASP.Net - PullRequest
0 голосов
/ 12 января 2011

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 Ответ

2 голосов
/ 12 января 2011

Как вы связываете свои TreeView?

Я полагаю, что вы привязываете к каждому Page_Load (или Page_Init, как угодно), независимо от this.Page.IsPostback

Если вы перепривязываетеваши TreeView до достижения EventHandler в жизненном цикле Asp.net, вы подавляете все события, которые должны быть вызваны, например, ваше OnTreeNodeCheckedChanged событие

Связывается только с

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

При обратной передаче необходимо выполнить повторную привязку после того, как были выполнены нужные обработчики событий


Редактировать :
Вам необходимо вручную принудительно установить PostBack, поскольку TreeView не вызовет Postback изменения свойства Checked отображаемых флажков.

Несмотря на то, что событие TreeNodeCheckChanged запускается при отправке сообщения назад, изменение флажка не вызывает отправку сообщения назад..

TreeView.TreeNodeCheckChanged Event

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...