【问题标题】:Textbox not retaining its value after postback using a calendar extender使用日历扩展器回发后文本框未保留其值
【发布时间】:2012-10-02 08:04:23
【问题描述】:

我正在使用带有文本框的 CalendarExtender 作为目标控件。我的代码如下:

<asp:TextBox ID="textBoxFromDate" runat="server" EnableViewState="true" />
<asp:CalendarExtender ID="textBoxFromDate_CalendarExtender" runat="server" Enabled="True"
                    TargetControlID="textBoxFromDate" Format="dd/MM/yyyy" EnableViewState="true">
</asp:CalendarExtender>

所以我使用日历控件来设置文本框中的值。这可以正常工作,但是当页面上发生回发时,文本框值将重置为日历控件的默认日期。

如何让文本框在回发时保留其值?

提前致谢。

我正在使用 ASP.Net 4.0。

【问题讨论】:

    标签: asp.net textbox postback calendarextender


    【解决方案1】:

    您是否尝试过动态设置只读字段而不是在标记中?另外,我会确保您在回发期间没有重置 Page_Load() 中的值。

    或者在 Page_load 上尝试这样的事情怎么样,在尝试将其设置为日历扩展器选择的日期之前,还要检查框中是否有有效日期?

    if (IsPostBack) 
    { 
        MyCalendarExtender.SelectedDate =
            DateTime.ParseExact(MyTextBox.Text, MyCalendarExtender.Format, null); 
    } 
    

    【讨论】:

    • 老实说我不需要 ReadOnly 设置。由于我一直在阅读试图解决此问题的博客,它目前仅存在。我把它拿出来了,同样的事情发生了。回发后,我没有在 Page_Load 上做任何事情。
    • 是的,您的第二次编辑对我来说效果很好。感谢您的帮助和时间。
    • 聪明。它也对我有用。我打算引入一些 asp:UpdatePanels 来减少整页刷新的次数(IsPostBack=false -> IsPostBack=true)。我可能仍然会添加一个或多个,但不是为了解决这个问题:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 2023-03-14
    • 1970-01-01
    相关资源
    最近更新 更多