【发布时间】:2019-02-26 15:20:30
【问题描述】:
我有一个有多个按钮的应用程序。每次单击按钮时,我都试图防止页面重新加载(这会干扰其他控件),因此我将代码的主要部分包装在 <asp:UpdatePanel><ContentTemplate></ContentTemplate></asp:UpdatePanel> 中。我已经查看了涉及在 </ContentTemplate> 之后使用 <Triggers><asp:AsyncPostBackTrigger>... 的单个按钮的多个解决方案,但这并不能解决我的问题。根据一些solutions,我正在使用AjaxControlToolkit(我已将using AjaxControlToolkit; 添加到我的C# 文件中)以及ModalPopExtender,这似乎会影响UpdatePanel 的行为。在不发布整个应用程序(很长)的情况下,这里是当前代码(aspx 和 C#)的基本布局以及我迄今为止尝试过的内容。关于我做错了什么有什么建议吗?
ASPX
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<div class="container" id="table_controls_section" style="margin-top: 20px; width: 100%;">
<div class="row" style="width: 100%;">
<table style="border-style:solid; border-color: darkblue; border-width:thin; border-bottom-width: 0px; width:100%;">
<tr>
<th style="text-align: center;">Requestor Info</th>
</tr>
<tr>
<td style="padding: 5px; text-align: center; width: 100%;">
<asp:Button ID="uxTicketHistoryButton" runat="server" Text="Show Ticket History" style="color: blue;" OnClick="uxTicketHistoryButton_Click"/>
<asp:Button ID="uxUseContactInfoButton" runat="server" Text="Use Contact Info" style="color: blue;" OnClick="uxUseContactInfoButton_Click" />
</td>
</tr>
</table>
</div>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="uxUseContactInfoButton" />
<asp:AsyncPostBackTrigger ControlID="uxTicketHistoryButton" />
</Triggers>
</asp:UpdatePanel>
C#
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using AjaxControlToolkit;
namespace BCA_TicketManagement
{
public partial class Summary : Page
{
....
protected void uxTicketHistoryButton_Click(object sender, EventArgs e)
{ ....
}
protected void uxUseContactInfoButton_Click(object sender, EventArgs e)
{ ....
}
}
}
到目前为止我尝试过的事情:
1) 在 C# 代码中添加using AjaxControlToolkit;。它也显示在我的参考文献中。
2) 将UpdateMode="Conditional" ChildrenAsTriggers="true" 添加到我的asp:UpdatePanel。还尝试更改ChildrenAsTriggers="false"。没有不同。
3) 尝试通过使用ControlID 为该按钮添加<Triggers><asp:AsyncPostBackTrigger...> 来使UpdatePanel 为单个按钮工作。不用找了。
4) 将xmlns:asp="#unknown" 添加到<asp:AsyncPostBackTrigger...>。抛出错误AsyncPostBackTrigger has no property 'xmlns:asp="#unknown"'
注意此页面加载在Master.site使用<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">的<form>标签内。
【问题讨论】:
标签: c# asp.net button updatepanel page-refresh