带有 PostBackTrigger 的 UpdatePanel 不会更新其外部的标签并在回发后继续
UpdatePanel with PostBackTrigger does not update the Label outside it and carry on after postbacks
我有一个带有 postbacktriggers
的 更新面板 ,我计划更新的标签在 导航栏 中,它不包含在触发器所在的 UpdatePanel 中。以下是该代码的结构:
<asp:Label ID="totalScorecardsLabel" runat="server"></asp:Label>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:PostBackTrigger ControlID="btnGenerateScorecard" />
<asp:PostBackTrigger ControlID="exportPDFbtn" />
<asp:PostBackTrigger ControlID="generateNewBtn" />
</Triggers>
<ContentTemplate>
divs.. etc
</ContentTemplate>
</UpdatePanel>
另一方面,我有 exportPDFbtn
的 click 事件,用于将条目添加到列表中,从而增加列表大小。
int totalScorecards = loadTest1.Count + loadTest2.Count + loadTest3.Count + loadTest4.Count;
totalScorecardsLabel.Text = totalScorecards.ToString();
totalScorecards
标签在 UpdatePanel 之外。我已将其设置为0
Page_Load if (!IsPostBack)
.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
init();//initialize all lists etc
int totalScorecards = 0;
totalScorecardsLabel.Text = totalScorecards.ToString();
}
}
单击 exportPDFbtn
后,我希望 标签 中有一个 增量变化。之后,我计划单击 generateNewScorecardbtn
,并期望 totalScorecards 数量进行回发。
但问题是即使元素 成功添加 到 exportPDF
[=36= 中的列表,标签仍然在 0
]clickEvent(使用 断点 来发现它是否真的添加到列表中)。我还使用 Server.Transfer("Scorecards.aspx")
作为 generateNewScorecardbtn
.
如有任何帮助,我们将不胜感激。谢谢!
如果它在面板之外,它将无法工作。
您需要将标签放在单独的更新面板中,然后它才会起作用。
将其放入另一个更新面板并使用 Update() 方法
https://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.update(v=vs.110).aspx
我有一个带有 postbacktriggers
的 更新面板 ,我计划更新的标签在 导航栏 中,它不包含在触发器所在的 UpdatePanel 中。以下是该代码的结构:
<asp:Label ID="totalScorecardsLabel" runat="server"></asp:Label>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:PostBackTrigger ControlID="btnGenerateScorecard" />
<asp:PostBackTrigger ControlID="exportPDFbtn" />
<asp:PostBackTrigger ControlID="generateNewBtn" />
</Triggers>
<ContentTemplate>
divs.. etc
</ContentTemplate>
</UpdatePanel>
另一方面,我有 exportPDFbtn
的 click 事件,用于将条目添加到列表中,从而增加列表大小。
int totalScorecards = loadTest1.Count + loadTest2.Count + loadTest3.Count + loadTest4.Count;
totalScorecardsLabel.Text = totalScorecards.ToString();
totalScorecards
标签在 UpdatePanel 之外。我已将其设置为0
Page_Load if (!IsPostBack)
.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
init();//initialize all lists etc
int totalScorecards = 0;
totalScorecardsLabel.Text = totalScorecards.ToString();
}
}
单击 exportPDFbtn
后,我希望 标签 中有一个 增量变化。之后,我计划单击 generateNewScorecardbtn
,并期望 totalScorecards 数量进行回发。
但问题是即使元素 成功添加 到 exportPDF
[=36= 中的列表,标签仍然在 0
]clickEvent(使用 断点 来发现它是否真的添加到列表中)。我还使用 Server.Transfer("Scorecards.aspx")
作为 generateNewScorecardbtn
.
如有任何帮助,我们将不胜感激。谢谢!
如果它在面板之外,它将无法工作。 您需要将标签放在单独的更新面板中,然后它才会起作用。
将其放入另一个更新面板并使用 Update() 方法
https://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.update(v=vs.110).aspx