1

我有一个更新面板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将条目添加到列表中,从而增加列表大小。

int totalScorecards = loadTest1.Count + loadTest2.Count + loadTest3.Count + loadTest4.Count;
totalScorecardsLabel.Text = totalScorecards.ToString();

totalScorecards 标签位于UpdatePanel 之外。我已将其设置为0on 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,我预计标签会发生增量变化。之后,我计划单击,并期望totalScorecards号码进行回发。generateNewScorecardbtn

0但问题是,即使元素已成功添加exportPDF clickEvent中的列表中,标签仍然处于打开状态(使用断点来发现它是否真的添加到列表中)。我也Server.Transfer("Scorecards.aspx")用于generateNewScorecardbtn.

任何帮助,将不胜感激。谢谢!

4

2 回答 2

1

将其放入另一个更新面板并使用 Update() 方法
https://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.update(v=vs.110).aspx

于 2017-03-08T08:32:25.473 回答
0

如果它在面板之外,它将无法工作。您需要将标签放在单独的更新面板中,然后它将起作用。

于 2017-03-08T06:27:30.947 回答