0

有以下几点:

<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 上设置的原始值。

我错过了什么吗?

编辑:最初在 Page_Load 中设置的文本框(是包含在 if(!IsPostback) 中):

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

以后像这样得到它:

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

3 回答 3

1

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

txtStart.Attributes.Add("readonly", "readonly");
于 2013-09-11T12:43:52.477 回答
0

如果您没有使用Page.IsPostBack页面的属性,请使用它并尝试在其中使用您的页面加载代码。看来可能是这个问题Page.IsPostBack,试试吧

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

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

于 2013-09-11T12:23:56.670 回答
0

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

于 2013-09-11T13:05:50.790 回答