2012-07-02 38 views
5

我創建一個ASP Web應用程序,該應用程序中一個表格必須更新在文本框中場我把壓延機的按鈕,文本框附近的日期值。它可以更新該文本框字段中的日期,但其可編輯。我想通過只使用日曆按鈕更新日期值,我用只讀屬性,但返回空值,所以不起作用。如何使在asp.net文本框爲不可編輯的(C#)

回答

9

嘗試客戶端HTML readonly屬性而不是ASP.NET服務器端readonly

myTextBox.Attributes.Add("readonly", "readonly"); 

從MSDN,

與只讀屬性設置爲true TextBox控件的文本值被髮送到時回發發生時服務器,但是服務器確實沒有處理用於只讀只有文本框。這可以防止惡意用戶更改只讀的文本值。除非通過服務器端代碼修改,否則Text屬性的值將保留在回發之間的視圖狀態中。

這就是爲什麼帶有服務器端readonly屬性的文本框在回發中具有空值。

+0

感謝。你最好 – soundy

0

你可能想用這個

TextBox1.Enabled = false; 
1

在隱藏文件代碼的頁面加載事件只寫下面的代碼:

yourTextBoxName.Attributes.Add("readonly","readonly"); 

,你也可以做同樣的使用性能

Enabled="false" 

在你的aspx頁面上,但你將無法在頁面後面的代碼中訪問它的值。

+0

「yourTextBoxName.Attributes.Add(」只讀「,」只讀「);」更好,因爲它允許您的文本框可調整大小和「Enabled =」false「」不。 – SubqueryCrunch

3

您可以使用 TextBox1.Enabled = false; OR

TextBox1.Attributes.Add("readonly","readonly");

不同的是,如果你讓enabled= false那麼你不能傳遞textbox的價值。如果您需要傳遞textbox的值,那麼您應該使用textbox的只讀屬性。

0

您可以textBox中不可編輯在asp.net

+0

0

使用只讀它會給出問題後回到剛剛成立該Java腳本性能

的onkeydown =「JavaScript的:返回false」

使用該U可以有像只讀屬性,並有絕對沒有問題將會araise

相關問題