2

这是一个愚蠢的问题,对此感到抱歉。

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

我正在创建这样的控件:

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

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

任何帮助,将不胜感激。

4

2 回答 2

2

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

jQuery 使绑定事件变得非常容易。

于 2012-07-30T18:35:42.740 回答
0

如果需要,从 RegisterClientScriptBlock() 触发 Function()

示例用法:

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

或者,您可以在这些新项目上设置点击等实时事件。

$(document).on('click', '#exampleThing', function () {
    // what you want to do
});
于 2012-07-30T18:40:16.333 回答