У меня есть ModalPopupExtender, содержащий UserControl, который в основном состоит из GridView и HiddenField, оба на UpdatePanel. HiddenField хранит номер выбранной строки. Таким образом, я избегаю обратных передач при выборе строк.
ModalPopupExtender содержит также некоторые кнопки, которые я хочу отключить, когда ни одна из строк GridView не выбрана. Поэтому следующий javascript выполняется в методе pageLoad ():
function trackSelection()
{
var hf = $get('<%= SXGVSavedTemplates.ClientID %>'+ '_hfSelected');
if(hf != null)
{
hf.onpropertychange = function()
{
var btnOk = $get('<%= btnLoadTemplateOK.ClientID %>');
var btnDelete = $get('<%= btnLoadTemplateDelete.ClientID %>');
var hfSelected = $get('<%= SXGVSavedTemplates.ClientID %>'+ '_hfSelected');
var disabled = (hfSelected.value == "");
if(btnOk != null)
{
btnOk.disabled = disabled;
}
if(btnDelete != null)
{
btnDelete.disabled = disabled;
}
}
}
}
Теперь это работает отлично. Когда отображается ModalPopup, кнопки отключены. Как только я выбираю любую из строк, кнопки становятся активными. Это замечательно. Но проблема в том, что UserControl с GridView исчезает! Более того, когда я изменяю размер окна браузера, оно снова появляется.
Обратите внимание, что по некоторым причинам (не спрашивайте почему) в проекте используется CTP-версия библиотеки Ajax Control Toolkit. Может ли это быть проблемой?
Буду признателен за любые предложения.