Disabled textbox is nothing on postback :o(

M

M O J O

I need to use Request.Form.AllKeys to get values of my textboxes, but
disabled textboxes are not shown.

Here's my code...

<%

@ Page Language="VB" %>
<!

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<

script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
ListBox1.Items.Clear()
If Page.IsPostBack Then
For Each s As String In Request.Form.AllKeys
ListBox1.Items.Add(New ListItem(s))
Next
End If
End Sub
</script>
<

html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtDisabled" runat="server"
Enabled="False">abcd</asp:TextBox><br />
<asp:TextBox ID="txtEnabled"
runat="server">abcd</asp:TextBox><br />
<asp:Button ID="Button1" runat="server"
Text="Button" /><br /><br />
<asp:ListBox ID="ListBox1"
runat="server"></asp:ListBox>
</div>
</form>
</body>
</html>


Click the button and watch the listbox ... the disabled control is not there.

I need to get values of disabled controls from inside a webcontrol (not user
control). I'm having problems using the FindControl method.

Any idea why the disabled controls are not showing??

Thanks!

Mojo
 
J

Jesse Houwing

M said:
I need to use Request.Form.AllKeys to get values of my textboxes, but
disabled textboxes are not shown.

Here's my code...

<%

@ Page Language="VB" %>
<!

DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<

script runat="server">
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
ListBox1.Items.Clear()
If Page.IsPostBack Then
For Each s As String In Request.Form.AllKeys
ListBox1.Items.Add(New ListItem(s))
Next
End If
End Sub
</script>
<

html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox ID="txtDisabled" runat="server"
Enabled="False">abcd</asp:TextBox><br />
<asp:TextBox ID="txtEnabled"
runat="server">abcd</asp:TextBox><br />
<asp:Button ID="Button1" runat="server"
Text="Button" /><br /><br />
<asp:ListBox ID="ListBox1"
runat="server"></asp:ListBox>
</div>
</form>
</body>
</html>


Click the button and watch the listbox ... the disabled control is not there.

I need to get values of disabled controls from inside a webcontrol (not user
control). I'm having problems using the FindControl method.

Any idea why the disabled controls are not showing??

It's in the protocol. If you make the field readonly instead of disabled
the value will come over to the server side. I guess it was done to
prevent unneeded data transfers, bandwidth was scarce a few years back :)

Jesse
 
S

Steve C. Orr [MVP, MCSD]

That is standard HTML behavior unfortunately. You'll likely want to cache
the value somewhere else, such as in Viewstate or in a hidden textbox.
 
J

Jesse Houwing

* Rick Strahl wrote, On 9-7-2006 1:08:
Actually ReadOnly also doesn't return the value either.

I posted a BLOG entry about this some time ago and there were quite a
few useful comments there as well:

http://west-wind.com/weblog/posts/3939.aspx

That is a bug in .NET then, as the value is posted back from a HTML/HTTP
point of view, but thank you for pointing this out.

Jesse
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top