2010-10-05 67 views
1

我在<asp:UpdatePanel>中有幾個下拉列表和文本框,在選擇<asp:GridView>中的一個項目後,應該讓我編輯一些細節。網格不在updatepanel內。無法更新asp:TextBox內部的.Text屬性:UpdatePanel

從的UpdatePanel .Load()方法,我改變。文本的幾<asp:Label><asp:TextBox>,我設置的一些<asp:DropDownList>的.SelectedValue。

所有標籤都會正確更新,但<asp:TextBox>和.SelectedValue的的新.Text在HTML輸出中不可見。在設置新值後,我可以看到它已經從Visual Studio中設置爲QuickWatch

這是什麼原因造成的,我該如何解決我的問題?

我使用Visual Studio 2008與.net 3.5

+0

你在哪裏(在哪個事件中)更新文本框/下拉菜單? – VinayC 2010-10-05 08:57:22

+0

我的猜測是,您可能在頁面生命週期的早期設置了控件,並且值從請求中被覆蓋。嘗試在Page_Load事件中設置值。 – VinayC 2010-10-05 09:05:42

+0

我更新從 tkalve 2010-10-05 09:58:50

回答

0

老兄,只需在UpdatePanels PreRender()方法中設置.Text即可。它會解決你的問題。

......感謝所有的幫助,夥計們。 ;)

0

我認爲這個問題是,當你選擇在<asp:GridView>沒有一個項目被回發到服務器? autopostback是否開啓?

此外,只要在<asp:GridView>中進行選擇,您就需要設置更新面板觸發器以回發(因此獲取新值)。

請留言,如果我得到了棒的錯誤結束。

+0

嗨,我明白你怎麼會這麼想。我使用__doPostBack從我自己的javascript發回服務器。如果Load方法沒有運行,也不會被更新,對嗎? – tkalve 2010-10-05 08:38:38

+0

你是否說Load方法發生後,你點擊了GridView? – 2010-10-05 08:45:02

+0

當我點擊GridView時,UpdatePanel被更新,並且運行Default.aspx.cs中的代碼函數panelDetails_Load。我的UpdatePanel引用了panelDetails_Load。 – tkalve 2010-10-05 08:58:27