日期:2014-05-16  浏览次数:21006 次

动态生成的Html控件无法触发事件,求解决方法

         <div>
            <a id="SelectAll" runat="server" onserverclick="SelectAll_Click">显示列表</a>
            
        </div>
        <div id="Score" runat="server" style="text-align:center">

        </div>


        DataSet set = new DataSet();
        set= dbo.ReturnSelectSet("Select * from UserInfo");
        string strHtml = "<table><tr>";
        for (int n = 0; n < set.Tables[0].Columns.Count; n++)
        {
            strHtml += "<td>" + set.Tables[0].Columns[n] + "</td>";
        }
        strHtml+="</tr>";
        for (int i = 0; i < set.Tables[0].Rows.Count; i++)
        {
            strHtml += "<tr>";
            for (int j = 0; j < set.Tables[0].Columns.Count; j++)
            {
                strHtml += "<td>" + set.Tables[0].Rows[i][j] + "</td>";
            }
                strHtml += "<td><input id='" + set.Tables[0].Rows[i][0] + "' type='button' runat='server' onserverclick='Btn_Click' value='删除' /></td>";
                strHtml += "</tr>";
        }
        strHtml += "</table>";
        this.Score.InnerHtml = strHtml;


动态生成了button控件 但是触发不了Btn_Click事件,要怎么做?
查了一下好像是说这样生成的控件没有注册然后找不到解决方法
------解决方案--------------------
不能这样生成,服务器控件在客户端是没有
runat='server' onserverclick
这些标记的。不可能执行,。
你只能使用服务器控件来实现

如Button x = new Button();
x.Click +=new EventHandler(Button1_Click);

TableRow.Cells.Add

参考例子
如何:向 Table Web 服务器控件动态添加行和单元格
http://msdn.microsoft.com/zh-cn/library/7bewx260%28v=vs.100%29.aspx