У меня есть элемент управления со списком внутри панели обновления, подключенной к таймеру, который выполняет автозапуск с помощью scriptmanager в основной форме.Доступ к управлению дочерней страницей с помощью Javascript (asp.net)
Чтобы сохранить выбранный элемент во время обратной передачи, я использую нижеследующий javascript. Я исследовал это довольно тщательно и не верю, что есть другой способ сохранить выбранный элемент, выбранный между postbacks. Однако это решение работает очень хорошо.
Моя проблема заключается в том, что когда я добавляю второй элемент управления в основную форму, он не будет работать.
Я попытался переместить JavaScript в основную форму, однако я не могу получить доступ к дочерним элементам из основной формы с помощью:
document.getElementById('<%=PositionsControl.FindControl("ListBox_Candidates").ClientID %>').selectedIndex
Я также попытался переименовать BeginRequestHandler и EndRequestHandler уникальных имен (чтобы избежать конфликтов когда этот скрипт находится на обоих элементах управления), и это не сработает.
Любая помощь очень ценится.
<script type="text/javascript">
var index
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args) {
index = document.getElementById('<%=ListBox_Candidates.ClientID %>').selectedIndex;
}
function EndRequestHandler(sender, args) {
$get('<%=ListBox_Candidates.ClientID %>').selectedIndex = index;
}
</script>
Извините, я не понимаю, можете ли вы объяснить, что вы имеете в виду, то есть какое свойство? – Jamesla
В коде behaind (C#?) Добавить свойство, которое выведет нужное значение (selectedIndex). В javascript свяжите его значение с информацией о контроле. Как <÷ = MyServerProperty ÷> – evgenyl
В настоящее время элемент управления привязан правильно. Нет проблем с привязкой элемента управления. Проблема возникает, когда у меня есть 2 из этих скриптов на одной странице (регистрация 2 обработчиков событий beginRequest). – Jamesla