views:

527

answers:

3

I've set a textbox to read-only. When the user clicks on it, a calendar is displayed and the user selects the date which inputs into the read-only textbox.

But when I try to enter the data into the database, it shows null value. What is wrong?

+2  A: 

There is a little bit of strangeness when it comes to the ASP.NET Readonly property and the readonly attribute of an HTML input element. Rather than setting the Readonly property of the web control try simply adding the HTML attribute to the control like this:

textBox.Attributes.Add("readonly", "readonly");

This will make the control read-only in the client's browser yet still allow you to retrieve the value of the input when it posts back to the server.

Andrew Hare
+1  A: 

The system assumes that read only or disabled controls won't be changed clientside so it doesn't post the changed value back to the server. You need to set the client side readonly property rather than the serverside version.

Tom Clarkson
thank you Andrew Hare and Tom Clarkson
fuz3d
A: 

There is workaround to simulate "readonly" behavior: http://codecorner.galanter.net/2009/10/09/postback-disabled-textbox/

Yuriy