我的应用程序中有多个asp:buttons
,无论何时单击它们都会重新加载页面。如何在仍然允许按钮功能工作的同时解决此问题?除了在页面重新加载时看起来很奇怪,我还有一个标签式导航部分,每次单击一个按钮时都会默认返回第一个选项卡。这是一个按钮和随之而来的C#代码的示例。
HTML / ASPX
<asp:Button ID="uxRequestFEMAResponseBtnT3" runat="server" Text="Generate Interim Response Email" OnClick="uxRequestFEMAResponseBtnT3_Click" />
<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
按钮的人遇到的常见问题。有关如何解决此问题的任何建议?
几个问题,
你可以使用jQuery。它绝对可以满足您的要求。但您必须编写Web方法而不是按钮单击事件。
Jquery的步骤
$('.button-class').onClick(function()){ //call to web method });
$.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..."); } });
为此目的使用updatepanel ...它们不会刷新页面并仍然执行您的点击事件