拥有以下内容:
<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);
答案 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会阻止它发布最新值。