/ / Що стосується Ajax в UserControl - asp.net, користувальницькі управління, asp.net-ajax, updatepanel

Що стосується Ajax в UserControl - asp.net, user-controls, asp.net-ajax, updatepanel

Ми створили UserControl. Всередині управління користувачами ми створюємо панель оновлень. Всередині панелі ми створюємо різні елементи управління, такі як TextBox, Button, DropDownList та ListBox та події, пов’язані з ними buttonclick (), DropDown_selectedIndexChanged (), TextBox_TextChenged () тощо. Усі елементи керування (включаючи панель оновлення) створюються програмно за допомогою c #. Для відторгнення подій ми використовували ScriptManager.

ScriptManager додається у функцію OnInit програмно, як показано:

ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page);
if (scriptManager == null)
{
scriptManager = new ScriptManager();
//scriptManager.EnablePartialRendering = true;
this.Controls.AddAt(0,scriptManager);
}

Кожного разу після завантаження сторінки лише одна подія звільняється частковим відступом (що бажано), але після цього жодна подія не звільняється.

Усі дійсні зміни вже зроблені у файлі web.config для AJAX. Підкажіть, будь ласка, можливу причину та рішення проблеми.

Відповіді:

0 для відповіді № 1

При частковій поштовій обробці ScriptManager не будебути доданим, тому що ви намагаєтеся додати його поза UpdatePanel (там, де він повинен бути). Це працює при завантаженні першої сторінки, оскільки це "не часткове поштове зворотне повідомлення". Але після часткового післязавантаження динамічно доданий ScriptManager не буде доступний для сторінки, і тому, що ви намагаєтеся додати його поза UpdatePanel - AddAt(0,...) - після часткового поштового зворотного зв’язку він фактично не буде доданий. На частковому поштовому відкладі ви можете впливати лише на речі всередині UpdatePanel, який ініціював його.

Підсумок - ви дійсно не можете додатиScriptManager динамічно, оскільки після часткового поштового звороту його ніколи не буде. Так само, як ви не можете динамічно додавати будь-який інший елемент керування поза межами UpdatePanel після події, що з’являється всередині нього.