如何让 UpdatePanel 为多个按钮工作?
How can I get UpdatePanel to work for multiple buttons?
我有一个有多个按钮的应用程序。我试图防止每次单击按钮时都重新加载页面(这会干扰其他控件),因此我将代码的主要部分包装在 <asp:UpdatePanel><ContentTemplate></ContentTemplate></asp:UpdatePanel>
中。我已经查看了涉及在 </ContentTemplate>
之后使用 <Triggers><asp:AsyncPostBackTrigger>...
的单个按钮的多种解决方案,但这并不能解决我的问题。我正在使用 AjaxControlToolkit
(我已将 using AjaxControlToolkit;
添加到我的 C# 文件中)以及 ModalPopExtender
,这似乎会影响 UpdatePanel
的行为,根据一些 [=32] =].在不发布整个应用程序(它很长)的情况下,这里是当前代码(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) 添加 using AjaxControlToolkit;
到 C# 代码。它也显示在我的参考资料中。
2) 将 UpdateMode="Conditional" ChildrenAsTriggers="true"
添加到我的 asp:UpdatePanel
。还尝试更改 ChildrenAsTriggers="false"
。没有不同。
3) 试图让 UpdatePanel
为单个按钮工作,方法是添加 <Triggers><asp:AsyncPostBackTrigger...>
使用该按钮的 ControlID
。没变化。
4) 将 xmlns:asp="#unknown"
添加到 <asp:AsyncPostBackTrigger...>
。抛出错误 AsyncPostBackTrigger has no property 'xmlns:asp="#unknown"'
注意 此页面使用 <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
.
在 Master.site
中的 <form>
标记内加载
您应该将 EventName
提供给您的触发器,如下例所示:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="uxUseContactInfoButton" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="uxTicketHistoryButton" EventName="Click" />
</Triggers>
希望这能解决您的问题。
我有一个有多个按钮的应用程序。我试图防止每次单击按钮时都重新加载页面(这会干扰其他控件),因此我将代码的主要部分包装在 <asp:UpdatePanel><ContentTemplate></ContentTemplate></asp:UpdatePanel>
中。我已经查看了涉及在 </ContentTemplate>
之后使用 <Triggers><asp:AsyncPostBackTrigger>...
的单个按钮的多种解决方案,但这并不能解决我的问题。我正在使用 AjaxControlToolkit
(我已将 using AjaxControlToolkit;
添加到我的 C# 文件中)以及 ModalPopExtender
,这似乎会影响 UpdatePanel
的行为,根据一些 [=32] =].在不发布整个应用程序(它很长)的情况下,这里是当前代码(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) 添加 using AjaxControlToolkit;
到 C# 代码。它也显示在我的参考资料中。
2) 将 UpdateMode="Conditional" ChildrenAsTriggers="true"
添加到我的 asp:UpdatePanel
。还尝试更改 ChildrenAsTriggers="false"
。没有不同。
3) 试图让 UpdatePanel
为单个按钮工作,方法是添加 <Triggers><asp:AsyncPostBackTrigger...>
使用该按钮的 ControlID
。没变化。
4) 将 xmlns:asp="#unknown"
添加到 <asp:AsyncPostBackTrigger...>
。抛出错误 AsyncPostBackTrigger has no property 'xmlns:asp="#unknown"'
注意 此页面使用 <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
.
Master.site
中的 <form>
标记内加载
您应该将 EventName
提供给您的触发器,如下例所示:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="uxUseContactInfoButton" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="uxTicketHistoryButton" EventName="Click" />
</Triggers>
希望这能解决您的问题。