#javascript #client
#javascript #клиент
Вопрос:
У меня есть 2 пользовательских элемента управления, размещенных на веб-странице, в событии user_control_load я добавляю некоторый скрипт на стороне клиента.
итак, когда запускается загрузка страницы user control 1, он добавляет скрипт. когда вызывается функция загрузки страницы 2, она снова записывает скрипт с тем же ключом, но в исходном виде страницы я вижу скрипт, добавленный пользовательским элементом управления 1. я ожидал, что пользовательский элемент управления 2 должен перезаписать скрипт, потому что ключ тот же, но его не происходит, есть идеи, как я могу перезаписать скрипт тем же ключом.
Ответ №1:
Согласно MSDN, сценарий запуска однозначно идентифицируется по его ключу и типу. Скрипты с одинаковым ключом и типом считаются дубликатами. На странице может быть зарегистрирован только один скрипт с заданным типом и парой ключей. Попытка зарегистрировать скрипт, который уже зарегистрирован, не создает дубликат скрипта.
Me.Page.ClientScript.RegisterStartupScript(Me.GetType, "aa", "alert('first');", True)
Me.Page.ClientScript.RegisterStartupScript(Me.GetType, "aa", "alert('second');", True)
В приведенном выше примере кода будет зарегистрирован только первый скрипт, второй — нет. Для получения более подробной информации, пожалуйста, следуйте документации.
Ответ №2:
Я думаю, что перезаписать скрипт, добавленный с тем же ключом, невозможно. Поскольку оба пользовательских элемента управления используются на одной странице, какой смысл добавлять скрипт при одной загрузке элемента управления, а затем снова переписывать при второй загрузке элемента управления. Вместо этого просто добавьте скрипт во вторую управляющую загрузку.