2017-02-22 2 views
0

У меня есть JavaScript в пользовательских элементов управления:Javascript не может быть вызван дважды в пользовательском элементе управления

public void updateStepColor() 
{ 
     ScriptManager.RegisterStartupScript(this, GetType(), "changeProgressActiveStep", "alert("Hello")", true); 
} 

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

Сценарий работает нормально, когда страница загружается, но не запускается при нажатии кнопки в дальнейшем.

Я попытался отлаживать, и все кажется прекрасным, за исключением того, что скрипт не запускается при нажатии кнопки (диспетчер сценариев вызывает это).

Я попытался скопировать ту же функцию, переименовать и изменить на «RegisterClientScriptBlock», но не работает.

Кто-нибудь знает, почему? Благодаря!

+0

Так вы вызываете эту функцию на кнопку мыши? – Sankar

+0

Это может быть вызвано, если вы используете панели обновления ASP.Net AJAX. Если да, дайте мне знать, там есть работа! –

+0

Да, нагрузка на страницу и нажатие кнопки. Только при загрузке страницы. Я редактирую вопрос, чтобы он стал понятнее. Спасибо! – DennisL

ответ

0

Когда вы используете панель обновления, рендеринг не будет выполняться для работы скриптового блока. Как Обойти поместить следующий код в PageLoad

ScriptManager.GetCurrent(Page).RegisterPostBackControl(urButton); 
+0

Если обходной путь не ясен, пожалуйста, напишите Ur code !!! –

+0

Я попытался обновить всю страницу, и она не работает. Спасибо, в любом случае. – DennisL

0

Я нашел ответ, я должен использовать страницу вместо этого:

ScriptManager.RegisterStartupScript(page, GetType(), "changeProgressActiveStep", "alert("Hello")", true); 
Смежные вопросы