在动态创建html元素后,无论如何都要触发事件?

时间:2012-07-30 18:32:41

标签: javascript asp.net html .net-3.5 dynamic-html

这是一个愚蠢的问题,很抱歉。

我正在从ASP.NET服务器控件动态创建html元素。创建元素或创建所有元素后,是否有办法强制事件触发其中一个元素?我知道它来自服务器到客户端,但我正在寻找解决方法。文档中是否有可以监听html被添加的内容?

我正在创建这样的控件:

protected override void RenderContents(HtmlTextWriter output)
{
    // htmlString is a dynamically built string of html
    output.Write(htmlString);
}

元素是一系列级联下拉列表,用户可以使用该下拉列表保存所选值。因此,如果我在创建项目时选择项目的值,则无法启动事件,该事件会调用数据库以获取数据以填充其依赖控件。这里有一个“没有回发”的规则(不是我的规则)。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:2)

您可以将javascript作为渲染的一部分输出,并将bind events输出到动态创建的控件。

jQuery使binding events非常容易。

答案 1 :(得分:0)

如果需要,可以从RegisterClientScriptBlock()

中激活一个Function()

示例用法:

ClientScript.RegisterClientScriptBlock(GetType(), "sas", "<script> alert('Inserted successfully');</script>", false);

或者您可以在这些新项目上点击等设置直播活动。

$(document).on('click', '#exampleThing', function () {
    // what you want to do
});