Как вы называете функцию Javascript из события управления ASPX?Как вы называете функцию Javascript из события управления ASPX?
В частности, я хочу вызвать функцию из события SelectedIndexChanged в DropDownList.
Как вы называете функцию Javascript из события управления ASPX?Как вы называете функцию Javascript из события управления ASPX?
В частности, я хочу вызвать функцию из события SelectedIndexChanged в DropDownList.
Я немного нервничаю, когда вижу такой вопрос, потому что девять раз из десяти это означает, что искатель не понимает, что происходит.
Когда ваше событие SelectedIndexChanged срабатывает на сервере, оно срабатывает как часть полной обратной передачи. Это означает, что для запуска этого кода также должен был работать весь остальной код загрузки вашей страницы.
Более того, код запускается в результате нового HTTP-запроса из браузера. Что касается браузера, в результате возвращается совершенно новая страница. Старая страница и старый DOM отбрасываются. Таким образом, в момент запуска вашего кода события SelectedIndexChanged функция javascript, которую вы хотите вызвать, даже не существует в браузере.
Так что же вместо этого делать? У вас есть несколько вариантов:
Вы не можете сделать это непосредственно из события, поскольку событие управления ASPX является серверным.
Что вы можете сделать, это испустить Javascript в событии ASPX, которое вызовет функцию JavaScript при перезагрузке страницы.
Например, если на вашей странице ASPX у вас есть функция Javascript под названием «DoSomething()», в вас событие управления ASPX, добавьте следующее:
protected void btnSubmit_Click(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "myEvent", "DoSomething()", true);
}
Последний логический параметр определяет, что теги добавляются автоматически.
Звучит как идея, но я понятия не имею, как вы делаете что-то подобное. Не могли бы вы уточнить, пожалуйста? –
Я отредактировал свое сообщение с образцом кода, в основном Google для RegisterStartupScript(), и вы найдете массу примеров. – muerte
Поскольку Muerte сказал, что вам нужно просто поместить javascript или позвонить ему на странице из кода позади.Лично я использую это:
ClientScript.RegisterClientScriptBlock("customscript", "<script>simple script here</script>")
Из вас может вызвать функцию, если у вас уже есть и более сложный на странице вместо вещей у меня есть.
В коде, прикрепляйте некоторую разметку к серверной стороне через ее набор атрибутов. Это предполагает, что функция уже находится в файле сценария клиента, который уже доступен для этой страницы.
MyServerDDLControl.Attributes.Add("SelectedIndexChanged", "MyClientSideFunction();");
Новичок теперь достаточно образован, и дает ответ на кредит соответственно ... Спасибо! :) –