ASP.net button 按钮onclick事件无法调用后台方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.net button 按钮onclick事件无法调用后台方法相关的知识,希望对你有一定的参考价值。

<input id="HomeLogOff" class="HomeLogOff" type="submit" value="注销" runat="server" onserverclick="UserRegister"/> 前台的按钮,
后台也写了相应i的方法
void UserRegister(object sender, EventArgs e) //注销方法 by wys 04/25

if (Session["User"]!=null)

Session.Contents.Remove("User"); //删除 session
Response.Redirect("Default.aspx"); //重定向首页


无法成功调用,是什么原因呐?我看有人说,html的服务器控件,这样写,需要javascript注册一下,这是怎么回事呐

参考技术A <asp:Button ID="btnSearch" runat="server" Text="检索" onclick="btnSearch_Click" OnClientClick="return checkAllInput();"/>

OnClientClick 是客户端点击提交 执行顺序在 onclick 之前,先触发JS判断,判断通过再通

过 Onclick 提交。

要是还不能解决?

你来我们群里说吧

这里是开发者互相学习交流的

有大神

让他们给你解释你的疑问 q un号: 188168040

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

【中文标题】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 button 按钮onclick事件无法调用后台方法的主要内容,如果未能解决你的问题,请参考以下文章

asp.net后台给动态button按钮写事件

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

asp.net中<input type=button>无法调用后台函数

在asp.net中如何做退出网页按钮?

总结ASP.NET C#中经常用到的13个JS脚本代码

总结ASP.NET C#中经常用到的13个JS脚本代码