动态生成的html没有触发onclick事件

时间:2015-12-16 12:07:29

标签: c# html asp.net

这是我构建html的C#。我尝试使用onclick和onclientclick更改OnServerClick,结果为:

  • Onserverclick不会触发任何内容
  • onclick给了我一个例外 这告诉我方法没有定义
  • onclientclick没有 什么都不开火

代码:

client.get(....., function(error, tweets) {
   ...
   otherCode(tweets);
});

function otherCode(userTweets) {
   // do some code
   console.log(userTweets);
}

1 个答案:

答案 0 :(得分:1)

你想要做的是在你的表单中添加一个控件,所以如果你想动态地执行它,你需要做这样的事情:

protected void Page_Load(object sender, EventArgs e)
{
    HtmlButton b = new HtmlButton
    b.ServerClick += MyEvent;
    tabellaDownload.Controls.Add(b);
    /* a table control doesn't accept a btn as child, you need to the exact td cell where insert the button*/
}

protected void MyEvent(object sender, EventArgs e)
{
}

Web表单中的所有内容都是控件集合中包含的控件。

Aspx文件以标记的形式包含html和服务器指令的混合(您可以注意到标记服务器指令的runat属性的区别),服务器端指令呈现为html标记以发送以与此类似的方式访问浏览器:

<input name="ctl00$MainContent$ctl00" onclick="__doPostBack('ctl00$MainContent$ctl00','')" type="button">

当您为控件的InnerHtml属性指定字符串时,您正准确发送要呈现客户端的内容,但没有一个特定于html(或特定于ecma脚本)的定义runat属性!