如何保持asp:按钮重新加载页面?

问题描述 投票:0回答:2

我的应用程序中有多个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按钮的人遇到的常见问题。有关如何解决此问题的任何建议?

c# asp.net onclick page-refresh
2个回答
1
投票

几个问题,

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

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

Jquery的步骤

  1. 添加jquery文件并在按钮声明中添加一个类
  2. 注册按钮点击事件

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

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

$.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
投票

为此目的使用updatepanel ...它们不会刷新页面并仍然执行您的点击事件

© www.soinside.com 2019 - 2024. All rights reserved.