0

我有一个重写 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 按钮,以便我可以在服务器端注册它的事件。

我发现这样做的唯一方法是:

  1. 将此按钮添加到占位符 - 此处不适用,因为整个 HTML 是动态生成的。
  2. 添加一个 jquery 按钮 - 但我需要在服务器端处理事件。

我在这里读到了一个有前途的线索: http ://www.evagoras.com/2011/02/10/how-postback-works-in-asp-net/

但我仍然不知道如何使用它——因为在示例中我看到按钮仍然在 .aspx 中声明,而不是在代码中动态声明。

4

1 回答 1

0

您可以从 control 继承您的控制,Button而不是Control. 在这种情况下,您将拥有按钮的事件和所有其他属性。你也可以用覆盖的Render方法渲染表格。

于 2013-08-29T11:40:07.393 回答