UpdatePanel с PostBackTrigger не обновляет Label за ее пределами и продолжает работу после обратных передач

У меня есть панель обновления с postbacktriggers и метка, которую я планирую обновить, находится на панели навигации, которая не включена в панель обновления, на которой расположены триггеры. Ниже приведена структура этого кода:

<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 Метка находится за пределами панели обновления. Я установил это 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 и ожидаем, что общее количество карт будет иметь обратную передачу.

Но проблема в том, что ярлык все еще включен 0 хотя элементы успешно добавляются в списки в exportPDF clickEvent (использовал точки останова, чтобы узнать, действительно ли он добавляет в списки). Я также использую Server.Transfer("Scorecards.aspx") для generateNewScorecardbtn,

Любая помощь будет оценена. Спасибо!

2 ответа

Решение

Поместите его в другую панель обновлений и используйте метод Update()
https://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.update(v=vs.110).aspx

Это не будет работать, если его за пределами панели. Вам нужно поместить ярлык в отдельную панель обновлений, и тогда она будет работать.

Другие вопросы по тегам