在运行时创建输入时,c#方法不会触发

在运行时创建输入时,c#方法不会触发,c#,html,asp.net,C#,Html,Asp.net,我尝试了以下代码,结果成功: <asp:Content runat="server" ID="CNT1" ContentPlaceHolderID="CPH1"> <div id ="CNT" runat="server"> <input name="btnName" type="submit" runat="server" id="btnId" clientidmode="Static" value="btnVal" OnServerCli

我尝试了以下代码,结果成功:

<asp:Content runat="server" ID="CNT1" ContentPlaceHolderID="CPH1">
    <div id ="CNT" runat="server">
        <input name="btnName" type="submit" runat="server" id="btnId" clientidmode="Static" value="btnVal" OnServerClick="btnClick"/>
    </div>
</asp:Content>

    protected void btnClick(object sender, EventArgs e)
    {
        string id = ((HtmlInputSubmit)sender).ID;
        //rest of code
    }

受保护的无效btnClick(对象发送方,事件参数e)
{
字符串id=((HtmlInputSubmit)sender.id;
//代码的其余部分
}
但是,当我尝试在运行时添加输入时,c#方法不会触发。 我尝试了以下代码:

CNT.Controls.Add(new LiteralControl("<input name=\"btnName\" type=\"submit\" runat=\"server\" id=\"btnId\" clientidmode=\"Static\" value=\"btnVal\" OnServerClick=\"btnClick\"/>")
CNT.Controls.Add(新的LiteralControl(“”)

创建一个
HtmlInputSubmit
对象,并根据需要设置属性

然后将服务器上的
Click事件处理程序添加到新创建的控件中


接下来,将此控件添加到LiteralControl文档(emphasis mine)中的
控件
集合

表示ASP.NET页面中**不需要在服务器上处理的HTML元素、文本和任何其他字符串。**
。不能将ServerClick与文本控件一起使用。那么解决方案是什么呢?添加适合服务器端处理的控件,例如。