2017-03-08 82 views
1

我有postbacktriggers更新面板和標籤,我打算更新後繼續在導航欄,這是不包括在的UpdatePanel觸發器位於。下面是代碼的結構:的UpdatePanel與PostBackTrigger並不外面更新標籤和回傳

<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外部。我已將其設置爲Page_Load if (!IsPostBack)0

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號碼爲將進行回傳

但問題是,標籤仍然在0即使元素成功添加的名單中exportPDFclickEvent(使用斷點發現,如果真的添加到列表)。我也使用Server.Transfer("Scorecards.aspx")作爲generateNewScorecardbtn

任何幫助,將不勝感激。謝謝!

回答

1

把它放進另一個更新潘內爾和使用Update()方法
https://msdn.microsoft.com/en-us/library/system.web.ui.updatepanel.update(v=vs.110).aspx

+0

是否需要構造函數?什麼'ViewState [「LastUpdate」] =值;'做?你能提供你的代碼想法的片段嗎? – JPaulPunzalan

+0

ViewState [「LastUpdate」] =值在這裏用來更新面板每隔5秒在這裏,我不認爲你需要的代碼。你只需要調用UpdatePanel.Update()方法 – Saurabh

0

它不會工作,如果它的面板外。 您需要將標籤放在單獨的更新面板中,然後才能使用。

+0

我只有把它裏面的另一個更新面板?還有什麼? – JPaulPunzalan

+0

這是唯一要做的事。它的工作? – Mohammad

+0

UpdateMode屬性如何? – JPaulPunzalan

相關問題