簡體   English   中英

通過clientid服務器端asp.net獲取禁用的文本框值

[英]get a disabled textbox value by clientid server side asp.net

- - - - - - - - - - - 編輯

我想用更簡單的術語來說,我想做的是獲取發布表單時在SQL插入語句中使用的禁用文本框的發布值。


我需要獲取一個禁用了javascript的文本框的值。 最終,我將使用該值作為SQL插入語句的參數。 我已經讀到我需要通過執行以下操作來獲取價值:

Request.Form(EnterDateTXT.ClientID)

我的理解是,這只會返回控件ID的html呈現值。 我實際上如何在文本框中檢索文本的值?

ASP.NET VB是我正在使用的語言

TextboxValue作為字符串= textboox1.text

如果您的表單是通過post方法請求的,則可以通過語法獲取表單控件的值

Request.Form(EnterDateTXT.ClientID)

在服務器端。

您可以參考鏈接http://msdn.microsoft.com/en-us/library/ms525985%28v=vs.90%29.aspx

.NET控件在回發時保持其狀態,將有一個名為EnterDateTXT的TextBox對象可用:

Dim txt as String = EnterDateTXT.Text;

從表單中檢索字段時,我們要做的是執行以下遞歸方法。 這樣可以處理只讀和禁用的文本框。

因為此方法更新了文本框的Text屬性,所以不需要其他代碼來關心控件的客戶端狀態:

''' <summary>
''' If a TextBox is marked as readonly, its value will not be updated into the server-side textbox control even though they are persisted.
''' This method copies the values from the Request.Form into textbox.text for all readonly textbox controls.
''' </summary>
''' <param name="cControls"></param>
''' <remarks></remarks>
Private Sub RetrieveReadOnlyTextBoxValues(ByVal cControls As ControlCollection)
    ' Exceptions are handled by the caller

    For Each oControl As Control In cControls
        If TypeOf oControl Is TextBox Then
            DirectCast(oControl, TextBox).Text = Request.Form(oControl.UniqueID)
        End If
        If oControl.HasControls Then
            Call RetrieveReadOnlyTextBoxValues(oControl.Controls)
        End If
    Next
End Sub

我能夠發布文本框值的最佳方法,同時仍然不允許用戶更改文本框的文本,是在PageLoad上將readonly屬性設置為true 這樣,文本框將被用戶輸入禁用,但是.NET4將發布javascript設置的texbox的值。 通過訪問文本框的.text屬性,我可以像通常在服務器端那樣訪問文本框值。

我的理解是.NET保留回發狀態,如果文本框設置為enabled=falsereadonly=true則.NET假定這些cantrols的值無法修改,並且不會發布這些值。 通過在加載時設置enabled=falsereadonly=true ,回發狀態允許您檢索文本值

禁用的控件不一定會被發布回服務器。 我認為那是瀏覽器,而不是服務器這樣做,但不是100%確定。 無論如何,如果您將其隱藏或設為只讀,它應該可以正常工作。 在服務器上設置Enabled =“ false”並不總是意味着客戶端上的disable =“ disabled”。 有時,當您禁用控件時,其呈現方式會大不相同。 這實際上取決於控件。

HTH。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM