2011-11-04 49 views
0

我有一個包含多個asp:TextBoxes的表單。用戶可以編輯這些文本框中的文本,並且當按下「保存」按鈕時,這些新值被寫入數據庫。嘗試查找TextBox中包含的值時出現奇怪的ASP.NET問題

我總共有3個文本框,前2個文本框的新值傳遞到後面的代碼沒有任何問題。但是,第三個文本框的舊內容會傳遞到服務器上,而不是用戶編輯的數據。

有問題的文本框的標記如下所示:

<asp:TextBox ID="descriptionBox" ReadOnly="true" style" runat="server" TextMode="MultiLine" Text='<%# Eval("Description") %>'></asp:TextBox> 

下面是其試圖獲取文本框的內容的用戶編輯後的C#代碼。請注意,這些文本框放置在一箇中繼器:

string description = ((TextBox)e.Item.FindControl("descriptionBox")).Text; 

任何人都可以提出這個問題可能是什麼?其他文本框使用相同的確切標記和代碼,他們工作得很好。

+2

爲什麼打上「只讀」,如果你希望它被改變了嗎? – Pointy

+0

你的標記是否真的包含'style''或是一個拼寫錯誤? –

+0

它被標記爲只讀的原因是因爲我希望它在第一次被加載時是不可編輯的,然後在後面的代碼中用jQuery改變了這個propery,因爲一個按鈕點擊事件。解決的辦法是通過JavaScript而不是ASP來設置這個屬性:) –

回答

5

MSDN documentation - 這是造成這個問題的只讀屬性:

與只讀屬性設置爲 真TextBox控件的文本值時發送到回發時的服務器,但是服務器 不處理只讀文本框。

另一種方法是做在客戶端:

descriptionBox.Attributes["readonly"] = "readonly"

+0

謝謝,這樣做!:) –

2

也許這是因爲你對文本框以下屬性:只讀=「真」!

編輯: 已經來不及了,學分去尖尖誰回答爲註釋.. :)

+0

嗯,我不知道ASP,所以我不能回答:-) – Pointy

+0

謝謝,那是問題 :) –

相關問題