Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过clientid服务器端asp.net获取禁用的文本框值_Javascript_Asp.net_Vb.net - Fatal编程技术网

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

Javascript 通过clientid服务器端asp.net获取禁用的文本框值,javascript,asp.net,vb.net,Javascript,Asp.net,Vb.net,----------------------编辑 简单地说,我想我要做的是获取一个禁用的文本框的post值,以便在发布表单时在SQL insert语句中使用 我需要获取一个被javascript禁用的文本框的值。最后,我将使用该值作为SQL insert语句的参数。我已经读到,我需要通过这样做来获得价值: Request.Form(EnterDateTXT.ClientID) 我的理解是,这将只返回控件ID的html呈现值。如何实际检索文本框中文本的值 ASP.NET VB是我正在使用的语言

----------------------编辑

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


我需要获取一个被javascript禁用的文本框的值。最后,我将使用该值作为SQL insert语句的参数。我已经读到,我需要通过这样做来获得价值:

Request.Form(EnterDateTXT.ClientID)
我的理解是,这将只返回控件ID的html呈现值。如何实际检索文本框中文本的值


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

Textboxvalue作为string=textboox1。text

如果您的表单是通过post方法请求的,您可以通过语法获取表单控件的值

Request.Form(EnterDateTXT.ClientID)
在服务器端


您可以参考链接。NET控件在回发时保持其状态,将有一个名为EnterDateTXT的
文本框
对象可用:

Dim txt as String = EnterDateTXT.Text;

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

由于此方法更新textbox的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
“”
''如果文本框被标记为只读,则其值将不会更新到服务器端文本框控件中,即使它们被持久化。
''此方法将Request.Form中的值复制到所有只读textbox控件的textbox.text中。
''' 
''' 
''' 
私有子检索ReadOnlyTextBoxValues(ByVal cControl作为ControlCollection)
'异常由调用方处理
对于每个oControl作为cControls中的控件
如果oControl的类型为TextBox,则
DirectCast(oControl,TextBox).Text=Request.Form(oControl.UniqueID)
如果结束
如果oControl.HasControls,则
调用检索ReadOnlyTextBoxValues(oControl.Controls)
如果结束
下一个
端接头

在仍然不允许用户更改文本框文本的情况下,我能够发布文本框值的最佳方法是在
PageLoad
上以编程方式将
readonly
属性设置为
true
。通过这种方式,文本框被“禁用”到用户输入,但是.NET4将发布javascript设置的文本框值。通过访问textbox的.text属性,我可以像通常一样在服务器端访问textbox值


我的理解是.NET保留回发的状态,如果文本框设置为
enabled=false
readonly=true
,则.NET假定这些控件的值无法修改,并且不会发布这些值。通过在加载时设置
enabled=false
readonly=true
,回发状态允许您检索文本值禁用的控件不必回发到服务器。我认为这是浏览器,而不是服务器,但不是100%确定。不管怎样,如果你把它隐藏起来,或者使它成为只读的,它应该可以正常工作。在服务器上设置Enabled=“false”并不总是意味着在客户端上设置disabled=“disabled”;有时,当您禁用控件时,其呈现方式会大不相同。这真的取决于控制


HTH.

我应该说文本框是asp.net文本框控件。ClientID是文本框的ID=“ClientID”名称吗?浏览器将使用控件的名称在POST中发回值。查看表单提交。你能做文本框<代码>只读< /代码>而不是<代码>禁用< /代码>吗?请考虑标记这个问题的答案,或者加上你自己的,并把它标记为答案,如果你已经解决了这个问题。这听起来像我所需要的。当我在提交表单时调用
retrieverReadOnlyTextBoxValues()
时,我应该为
ByVal cControl传递哪些参数作为ControlCollection
@mumis2012:对不起,这意味着包括:如果这是在页面或用户控件中,则传递
Me.Controls
。还记得只有在没有回复的情况下才给它打电话;我使用JQuery禁用了一个控件,然后发现它没有发布到服务器。我不知道是.NET做的,但可能是浏览器,正如我在帖子中提到的。