如何防止asp:button重新加载页面?

时间:2019-02-20 03:49:25

标签: c# asp.net onclick page-refresh

我的应用程序中有多个asp:buttons,每当它们被单击时,它们都会重新加载页面。在仍允许按钮功能正常工作的同时,如何解决此问题?除了页面重新加载时看起来很奇怪之外,我还有一个标签样式导航部分,该部分在每次单击按钮时默认回到第一个标签。这是一个按钮及其附带的C#代码的示例。

HTML / ASPX

<asp:Button ID="uxRequestFEMAResponseBtnT3" runat="server" Text="Generate Interim Response Email" OnClick="uxRequestFEMAResponseBtnT3_Click" />
&nbsp;<asp:TextBox ID="uxFEMARequestDateTxtBox" runat="server" style="color: red; text-align:center;"></asp:TextBox>

C#

protected void uxRequestFEMAResponseBtnT3_Click(object sender, EventArgs e)
    {
        String today = DateTime.Now.ToString("dd/MM/yyyy");
        uxFEMARequestDateTxtBox.Text = today;
    }

到目前为止我已经尝试过: 我尝试了多种修复程序来解决此问题。最初,我认为可以通过将整个主体部分(包括所有按钮)包装在<asp:UpdatePanel ID="UpdatePanel1" runat="server"> ...中来解决此问题,但这没有用。其次,我尝试仅在AutoPostBack="False"标记内添加<asp:Button..>,但没有任何变化。然后,我将所有asp: buttons更改为具有相同<input type="button"...>事件的简单html onClick。这停止了​​重新加载,但是功能(将DateTime添加到C#中的文本框)不再起作用。我已经看过几种可能的jQuery解决方案,但是我不确定这是否可以解决我的问题。我对ASP.NET还是很陌生,但这似乎是一个常见问题,任何使用Web.Controls.UI按钮的人都会遇到。关于如何解决这个问题有什么建议吗?

2 个答案:

答案 0 :(得分:1)

几个问题

  • 是否已在页面加载时使用RegisterAsyncPostBackControl方法添加了脚本管理器并配置了按钮?
  • AutoPostBack应该始终为true。否则,它不会触发服务器点击事件。

您可以使用jQuery。它一定会满足您的要求。但是您必须编写一个Web方法而不是按钮单击事件。

Jquery步骤

  1. 添加jquery文件并将类添加到按钮声明

  2. 注册按钮点击事件


    $('.button-class').onClick(function()){
        //call to web method
    });

  1. 在服务器端创建一个包含业务逻辑的Web方法

  2. 调用网络方法


$.ajax({
        type: 'POST',
        url: 'PageName.aspx/MethodName',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            if (msg.d) {
                //set your values to the text box
                $('.textbox-classname').val(msg.d.returningvalue);
            }
        },
        error: function () {
            alert("Error! Try again...");
        }
    });

答案 1 :(得分:1)

为此目的使用updatepanels ...它们将不会刷新页面,而仍然会激发您的点击事件