2013-09-08 3 views
0

Я сделал исследование по этому вопросу Я не мог найти правильный ответ.asp.net динамический пользовательский контроль кнопка щелчок вопрос

На моей странице default.aspx у меня есть древовидная структура. Коды находятся в default.aspx, как показано ниже:

protected void Page_Load(object sender, EventArgs e) 
{ 

} 
protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) 
{ 
     Control ucont; 
     if (TreeView1.SelectedNode.Value == "Yeni Dönem") 
     { 
     ucont = LoadControl("usercontrols/yenidonem.ascx"); 
     PlaceHolder1.Controls.Add(ucont); 
     } 
     else 
     { 
     ucont = LoadControl("usercontrols/tabloktar.ascx"); 
     PlaceHolder1.Controls.Add(ucont); 
     } 
} 

Я загружаю пользовательские элементы управления dnyncycy. Элементы управления пользователя имеют кнопочное управление. Я не могу запустить кнопку управления пользователем, когда я загружаю ее динамически. Как я могу это решить? Спасибо.

ответ

0

Прежде всего, я бы не рекомендовал динамически добавлять управление позже, чем в событии Page_Load. Остальные вещи, которые следует помнить, это то, что вы должны добавить его на каждую загрузку страницы и присвоить уникальное значение ID для элемента управления, который не изменяется между postbacks.

В этом случае самым простым способом было бы всегда добавлять оба элемента управления на страницу и показывать соответствующие значения с использованием свойства Visibility.

Если это не подходит для вас, попробуйте перевести код с TreeView1_SelectedNodeChanged на событие Page_Load и загрузите соответствующий элемент управления на каждый ответ, пока он не будет изменен на другой.

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

+0

Но в этом случае для каждого события кнопки clcik или обратной передачи внутри пользовательского контроллера он снова и снова загружает элемент управления. – sakir

+0

Дело в том, что вам нужно загрузить элемент управления, щелкнув по которому было отправлено сообщение ***, когда *** щелкнули по нему, чтобы можно было правильно обработать соответствующее событие click. Если вы не загрузите элемент управления, событие 'Click' не будет запущено, потому что для этого события нет привязки к этому событию. Когда вы добавляете оба элемента управления на страницу при каждой обратной передаче, оба они всегда загружаются, но вы можете контролировать, какой из них отображается с помощью свойства «Видимость». –