C# 如何获取在运行时创建的已单击输入的Id

C# 如何获取在运行时创建的已单击输入的Id,c#,html,asp.net,C#,Html,Asp.net,我想在运行时向我的页面添加一些提交输入,并在事件处理程序中使用单击输入的Id 这是我的aspx代码: <asp:Content runat="server" ID="CNT1" ContentPlaceHolderID="CPH1"> <div id ="CNT" runat="server"> </div> </asp:Content> <script language="c#" runat="server"> p

我想在运行时向我的页面添加一些提交输入,并在事件处理程序中使用单击输入的Id

这是我的aspx代码:

<asp:Content runat="server" ID="CNT1" ContentPlaceHolderID="CPH1">
    <div id ="CNT" runat="server">
    </div>
</asp:Content>
<script language="c#" runat="server">


private void btnClick(object sender, EventArgs e)
{
    string id = ((HtmlInputSubmit) sender).ID;
    // some other code using id 
}
</script>

私有void btnClick(对象发送方,事件参数e)
{
字符串id=((HtmlInputSubmit)sender.id;
//使用id的其他代码
}
这是我的aspx.cs代码

foreach (DataRow dr in dt.Rows)
{
    CNT.Controls.Add(new LiteralControl(
    "<input type=\"submit\" runat=\"server\" id="+dr.ItemArray[0].ToString()+
        " value=\"val1\" OnServerClick=\"btnClick\"/>"));
}
foreach(数据行中的数据行dr)
{
CNT.Controls.Add(新的LiteralControl(
""));
}

我可以使用此代码在aspx页面上创建输入,而不会出现任何问题

将访问修饰符从私有更改为受保护:

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

因为无法访问私有成员函数。

将访问修饰符从私有更改为受保护:

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

因为无法访问私有成员函数。

问题是什么?“字符串id=((HtmlInputSubmit)sender).id;”是否无效?请说得更具体一些,无法理解问题请尝试签出您的按钮\u click事件是否已触发?此代码无效如何检查按钮\u click事件?问题是什么?“字符串id=((HtmlInputSubmit)sender.id;”无效吗?请更具体一些,无法理解问题请尝试签出您的按钮\u单击事件是否已触发?此代码不起作用如何检查按钮\u单击事件?了解代码不起作用的原因对我很有价值。无法将类型为“ASP.predictions\u aspx”的对象强制转换为类型为“System.Web.UI.WebControl.button”。当我在aspx页面中创建输入时,我可以使用服务器端事件没有任何问题了解代码不工作的原因对我来说很有价值。无法将类型为“ASP.predictions\U aspx”的对象强制转换为类型为“System.Web.UI.WebControl.Button”。当我在aspx页面中创建输入时,我可以使用服务器端事件而没有任何问题