Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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.

ASP.NET assumes that the Readonly and Enabled="false" property of the webcontrol will not change . Thus it does not postback the value as mentioned by tom above . You can use this workaround . Adding this to the html you don have to worry about Readonly property or disabled control .

   onkeydown="return false;"

Or you can replace the ASP textbox with input type text with runat="Server" and then adding readonly property as readonly. Check the link

Workarounds to access the Readonly Textbox value on server side when changed through client side script

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top