我有一个重写 Render() 并动态创建其 HTML 的控件,这是它的简化版本:
public class CReportBillReadings : Control
{
protected override void Render(HtmlTextWriter writer)
{
base.Render(writer);
writer.Write(Html);
}
private string Html
{
get
{
// render result table
var sb = new StringBuilder();
sb.Append("<ul id=\"export\"><li><a href=\"#\" onclick=\"table_to_pdf(); return false;\"><img src=\"/resources/images/pdfIcon16x16.gif\" /></a></li></ul><div class=\"clear\"></div>");
等等。
它实际上所做的是根据给定的数据绘制一个表格。
我想在 html 中添加一个 asp 按钮,以便我可以在服务器端注册它的事件。
我发现这样做的唯一方法是:
- 将此按钮添加到占位符 - 此处不适用,因为整个 HTML 是动态生成的。
- 添加一个 jquery 按钮 - 但我需要在服务器端处理事件。
我在这里读到了一个有前途的线索: http ://www.evagoras.com/2011/02/10/how-postback-works-in-asp-net/
但我仍然不知道如何使用它——因为在示例中我看到按钮仍然在 .aspx 中声明,而不是在代码中动态声明。