ASP.NET/HTML:ASP.NET (.cs) 中 HTML 按钮的 onClick 属性

Posted

技术标签:

【中文标题】ASP.NET/HTML:ASP.NET (.cs) 中 HTML 按钮的 onClick 属性【英文标题】:ASP.NET/HTML: HTML button's onClick property inside ASP.NET (.cs) 【发布时间】:2011-03-11 04:22:42 【问题描述】:

我只是想知道是否有办法将我的 onClick 事件放入 .cs:

<button type="submit" runat="server" id="btnLogin" class="button" onclick="btnLogin_Click();">

Login_Click() 应该在 .cs 中的位置:

protected void btnLogin_Click(object sender, EventArgs e)

    // do something
 

请注意,我不会在这里使用 ASP.NET 按钮,并且我不会将 Login_Click() 事件放在 .html/.aspx 中,因此我不能“公开”我的代码。有什么建议吗?

【问题讨论】:

【参考方案1】:

您可以在任何服务器控件上执行此操作,并且通过定义“runat=server”使此按钮成为服务器控件。问题可能出在您对事件的定义中:

<button ... runat="server" ... onServerClick="btnLogin_Click" />

那里不需要“();”...

除此之外,你能解释一下为什么你不在这里使用&lt;asp:Button&gt;,因为我真的看不出有什么问题...

【讨论】:

看起来他已经在提供的示例中将其设为runat="server" R0MANARMY 是对的,您需要 HtmlButton 的“OnServerClick”事件。更新了我的示例... 使用 HTML 按钮标签而不是 asp 控件的一个常见原因是 asp 呈现控件的 ID,而在公共按钮标签中您可以对其进行更多控制。【参考方案2】:

您需要使用onServerClick。在MSDN 上有一个如何做到这一点的示例:

<button id="Button1" OnServerClick="Button1_OnClick" runat="server">
    Click me!
</button>


protected void Button1_OnClick(object Source, EventArgs e) 
    // secret codes go here

【讨论】:

【参考方案3】:

btnLogin.Click += new EventHandler( btnLogin_Click );

将 btnLogin_Click 事件处理程序分配给按钮的 Click 事件。

但是,我要指出的是,在 aspx 页面的标记中分配处理程序不会“暴露您的代码”,因为呈现给客户端的 HTML 中没有任何信息。

【讨论】:

【参考方案4】:

我知道已经很晚了,但我在这个问题上浪费了很多时间。我正在设置带有按钮的 div 的 InnerHtml。如果你想让它工作,你需要将 type="submit" 添加到你的按钮。

【讨论】:

【参考方案5】:

已经很晚了,但是对于那里的人:申请UseSubmitBehavior="False"。示例

<button type="submit" runat="server" UseSubmitBehavior="False" type="button" id="btnLogin" class="button" onclick="btnLogin_Click();">

【讨论】:

以上是关于ASP.NET/HTML:ASP.NET (.cs) 中 HTML 按钮的 onClick 属性的主要内容,如果未能解决你的问题,请参考以下文章

带有 C# 实现的 ASP.NET HTML5 WebSockets

ASP.NET / HTML - 使用光标时的文本区域光标位置

Visual Studio ASP.NET/HTML 重新格式化功能 - 它存在吗?

在 Asp.net HTML 控件中动态获取城市

ASP.NET @Html.DropDownListFor() 选择的值设置为 true 但提交给控制器时返回 false

服务器端创建的按钮不会触发点击事件