user1166905
user1166905

Reputation: 2622

ASP.Net AjaxControlToolkit CalendarExtender not updating Textbox in code behind

Have the following:

<asp:TextBox ID="txtStart" runat="server" Enabled="false"></asp:TextBox>
<asp:Image ID="ibDateS" runat="server" ImageUrl="../SystemImages/calendar.gif" ToolTip="Click to show calendar" AlternateText="Click to show calendar" CssClass="showpointer" />                                                
<ajaxToolkit:CalendarExtender ID="ceStart" PopupButtonID="ibDateS" Format="dd/MM/yyyy" TargetControlID="txtStart" runat="server"></ajaxToolkit:CalendarExtender>

It all works ok on the DOM and the textbox gets updated with the new date BUT when I try to get the value in code behind i.e. txtStart.Text it still has the original value set on Page_Load.

Have I missed something?

EDIT: TextBox set originally in Page_Load (yes contained in if(!IsPostback)):

txtStart.Text = DateTime.Now.ToString("dd/MM/yyyy");

Get it later like so:

DateTime dtStart = Convert.ToDateTime(txtStart.Text);

Upvotes: 0

Views: 2382

Answers (3)

Irfan TahirKheli
Irfan TahirKheli

Reputation: 3662

Enabled false preventing it to post the latest value.

Upvotes: 0

user1166905
user1166905

Reputation: 2622

After a bit of research apparently its an issue with setting the textbox to readonly or enabled="false" on the page. Removing this and adding the following to page_load solved the problem:

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

Upvotes: 2

Rahul
Rahul

Reputation: 5636

if you haven't use Page.IsPostBack property of page then plz use it and try to use you pageload code inside that. It seems that it may be the problem of Page.IsPostBack,Try for that

protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
   {
    // Your code for databind...
   }
}

Hope you understand and works for you..

Upvotes: 0

Related Questions