После динамического создания HTML-элементов, есть ли возможность запустить событие?
Это глупый вопрос, так что сожалею об этом.
Я создаю HTML-элементы динамически из серверного элемента управления ASP.NET. После того, как элемент создан или все элементы созданы, есть ли способ вызвать событие на одном из них? Я понимаю, что он идет от сервера к клиенту, но я ищу способ обойти это. Есть ли в документе что-нибудь, что может прослушивать добавляемый html или что-то еще?
Я создаю элементы управления следующим образом:
protected override void RenderContents(HtmlTextWriter output)
{
// htmlString is a dynamically built string of html
output.Write(htmlString);
}
Элементы представляют собой серию каскадных выпадающих меню, в которых пользователь имеет возможность сохранить выбранное значение. Таким образом, если я выберу значение элемента при его создании, не будет никакого способа инициировать событие, которое вызывает базу данных для данных, чтобы заполнить ее зависимый элемент управления. Здесь есть правило "без обратной передачи" (не мое правило).
Любая помощь будет оценена.
2 ответа
Вы можете вывести javascript как часть рендеринга и привязать события к динамически создаваемым элементам управления.
jQuery делает связывание событий очень простым.
Если вы хотите, запустите функцию () из RegisterClientScriptBlock()
Пример использования:
ClientScript.RegisterClientScriptBlock(GetType(), "sas", "<script> alert('Inserted successfully');</script>", false);
Или вы можете настроить живое событие на клик и т. Д. На эти новые элементы.
$(document).on('click', '#exampleThing', function () {
// what you want to do
});