ASP.Net AjaxControlToolkit CalendarExtender不会在后面的代码中更新Textbox

时间:2013-09-11 12:13:43

标签: asp.net ajaxcontroltoolkit

拥有以下内容:

<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>

这一切在DOM上工作正常,文本框使用新日期更新但是当我尝试获取代码后面的值时,即txtStart.Text它仍然具有在Page_Load上设置的原始值。

我错过了什么吗?

编辑: TextBox最初设置在Page_Load中(yes包含在if(!IsPostback)中):

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

稍后得到它:

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

3 个答案:

答案 0 :(得分:1)

经过一些研究显然,将文本框设置为readonly或者在页面上启用=“false”是一个问题。删除它并将以下内容添加到page_load解决了问题:

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

答案 1 :(得分:0)

如果你没有使用页面的Page.IsPostBack属性,那么请使用它并尝试在其中使用页面加载代码。似乎可能是Page.IsPostBack的问题,试试那个

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

希望你理解并为你工作..

答案 2 :(得分:0)

启用false会阻止它发布最新值。