2013-10-25 94 views
6

我有像下面的文本框。asp.net文本框中的值和文本屬性(值被文本覆蓋)

<asp:TextBox runat="server" ID="Name" value="aaaa" text="bbbb"/> 

代碼後面。

Dim str As String = Name.Text.Trim() ' value as bbbb 

如果我刪除了文本屬性。

<asp:TextBox runat="server" ID="Name" value="aaaa" /> <%--text="bbbb"--%>  

Dim str As String = Name.Text.Trim() ' value as aaaa 

每當我保留文本屬性我無法訪問值字段。當文本屬性存在時如何獲取值字段?

+1

你不應該使用Value屬性,它不是文本框的一部分。你應該總是使用文本。當你有價值和文字時,看看viewsource。 –

回答

6

不要使用value屬性。如果您使用的是asp.net的TextBox,則必須使用Text

當您添加TextBox類中不存在的屬性時,asp.net會將這些屬性呈現給生成的html。所以

<asp:TextBox runat="server" ID="Name" text="bbbb" mycustomproperty="hi" /> 

將呈現給這樣的事情

<input type="text" value="bbbb" id="..." name="..." mycustomproperty="hi"/> 

如果省略TextBoxText財產和寫入值屬性,則value屬性將被渲染。

<asp:TextBox runat="server" ID="Name" value="aaaa" /> 

<input type="text" value="aaaa" id="..." name="..."/> 

文本框不具有Value屬性。當創建TextBox實例時,HTML值屬性將被分配給Text屬性,這就是爲什麼您訪問具有「aaaa」值的Text屬性的原因。

摘要:在使用ASP.NET控件時,請勿使用value屬性。使用控件的特定屬性。

0

如果你想存儲相關的頁面上的控制數據,則可以考慮使用ASP.NET HiddenField控制存儲值可在整個後背上被讀取到服務器上,像這樣:

<asp:HiddenField runat="server" id="HiddenFieldValue" /> 

然後在後臺代碼,就可以得到,並通過Value屬性設置的值,就像這樣:

' Storing value 
Me.HiddenFieldValue.Value = "value you want to keep" 

' Retrieving value 
Dim str As String = Me.HiddenFieldValue.Value