2010-04-07 62 views
1

我有一個csv importroutine,它將CSV值導入到Sitecore中。完成這個過程後,我想在asp:literal中顯示錯誤。這是行不通的,我認爲這是因爲我需要一個更新面板,以便能夠在第一次回發(csv上傳/導入)後更新文本。處理CSV文件後在updatepanel中顯示錯誤

我做了這個:

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
       </asp:ScriptManager> 
       <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
        <ContentTemplate> 
         <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder> 
         <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" /> 
        </ContentTemplate> 
       </asp:UpdatePanel> 

和編碼這一點:

string melding = string.Format("Er zijn {0} objecten geïmporteerd.{1}", nrOfItemsImported, errors); 

ViewState["Melding"] = melding; 

,我有一個按鈕。在這個按鈕的onclick我有:

 Literal literal = new Literal(); 
     literal.Text = (string)ViewState["Melding"]; 
     literal.ID = DateTime.Now.Ticks.ToString(); 

     UpdatePanel1.ContentTemplateContainer.Controls.Add(literal); 
     PlaceHolder1.Controls.Add(literal); 

現在當我按下按鈕,我想更新的面板,這樣它會告訴我的文字與它的ERRORMSG。但是這並沒有發生。怎麼會這樣?我猜它是與我的視圖狀態,我沒有看到後我按下按鈕的視圖狀態鍵...


@Update:

我發現這個問題。我在一個會話中存儲信息,但是關鍵字i的數據存儲信息太大。這使得會話密鑰爲空。我在我的文字中發佈了一個空字符串,因此沒有顯示任何信息。我現在正在尋找一種更好的方式來存儲我的數據並將其顯示在我的updatepanel中。我試過Viewstate/Session/Cookies,它們都不會按我想要的方式工作。當我使用視圖狀態時,我無法存儲信息。 viewstate(debugmode)顯示計數0和0鍵...希望有人知道一個好方法,以確保我的errorstring(476kb)存儲在某處,我可以輕鬆地將其發佈到我的updatepanel的文字。

+2

我會刪除這部分:'literal.ID = DateTime.Now.Ticks.ToString()',只是使用'literal.ID =「狀態」',不確定ASP.Net是否意識到這可能是一個無效的ID ,但它可能會這樣做。 – 2010-04-07 11:49:46

+0

你嘗試過調試嗎?你的代碼是否到達Button1_Click事件? – Prutswonder 2010-04-07 11:52:57

回答

1

如果您使用的是FileUpload控件,則不能使用UpdatePanel異步更新面板。文件上傳是一個同步事件,因此您需要在下一個Page_Load事件期間上傳完成後更新頁面上的Literal控件。

0

在你的代碼中,你有沒有試過UpdatePanel1.Update();?即使您添加了控件,仍然需要將更新「觸發」到更新面板。

看到這裏可能類似的問題:StackOverflow

+0

我正在使用.update方法是。謝謝你的回答。我認爲它與視圖狀態無關。在調試中按鈕點擊方法我沒有看到視圖狀態中的任何鍵... – Younes 2010-04-07 11:53:30

+0

你是否啓用了ViewState?應該在頁面上設置EnableViewState =「True」。 – Tommy 2010-04-07 12:32:09

0

我嘗試這個代碼,並在按鈕的點擊,我能夠得到網頁上的文字文本。你能提供一些更多的細節。

+0

又一次。我認爲這是我的viewstate工作不正常。我也可以用靜態文本在我的頁面上點亮。然而,我想在本頁的視圖狀態中存儲一些內容(文本),然後將其傳輸到我的錯誤面板。而且我看到我的viewstate沒有填充任何信息... – Younes 2010-04-07 11:58:14

+0

@Tommy,Younes - UpdatePanel1.Update()不應該被調用。由於在UpdatePanel中引發的任何回發事件都會導致UpdatePanel的AsyncPostback,它將更新面板。 – 2010-04-07 12:00:39

+0

因此,UpdatePanel工作正常,您現在需要調試Viewstate代碼。 – 2010-04-07 12:11:12