通过clientid服务器端asp.net获取禁用的文本框值

时间:2011-12-19 03:37:09

标签: javascript asp.net vb.net

---------------------- EDIT

我想简单来说,我想要做的是在发布表单时获取禁用文本框的post值以在SQL insert语句中使用。


我需要获取使用javascript禁用的文本框的值。最后,我将使用该值作为SQL插入语句的参数。我已经读过,我需要通过这样的方式获得价值:

Request.Form(EnterDateTXT.ClientID)

我的理解是,这只会返回控件ID的html呈现值。如何实际检索文本框中文本的值?

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

6 个答案:

答案 0 :(得分:0)

Textbox Value as string = textbox1.text

答案 1 :(得分:0)

如果您的表单通过post方法请求,您可以通过语法

获取表单控件的值
Request.Form(EnterDateTXT.ClientID)

在服务器端。

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

答案 2 :(得分:0)

.NET控件在回发时保持状态,会有一个名为EnterDateTXT的TextBox对象可用:

Dim txt as String = EnterDateTXT.Text;

答案 3 :(得分:0)

从表单中检索字段时,我们执行以下递归方法。这会处理只读和禁用的文本框。

因为此方法更新了文本框的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

答案 4 :(得分:0)

我能够发布文本框值的最佳方式,同时仍然不允许用户更改文本框的文本,是readonly属性设置为true PageLoad {{1} }}。这样文本框被“禁用”到用户输入,但.NET4将发布由javascript设置的texbox值。通过访问文本框的.text属性,我能够像访问服务器端那样访问文本框值。

我的理解是.NET保留了回发的状态,如果文本框设置为enabled=falsereadonly=true,则.NET假定这些控件的值不能修改,也不会发布价值观。通过在加载时设置enabled=falsereadonly=true,回发状态允许您检索文本值

答案 5 :(得分:0)

禁用的控件不会必须回发到服务器。我认为这是浏览器,而不是服务器那样做,但不是100%肯定。无论如何,如果你隐藏它,或者只读它,它应该工作正常。在服务器上设置Enabled =“false”并不总是意味着在客户端上禁用=“禁用”;有时,当您禁用控件时,它呈现的方式会有很大不同。这实际上取决于控制。

HTH。