【问题标题】:Conflic between calendars日历之间的冲突
【发布时间】:2017-10-20 22:48:22
【问题描述】:

我有两个这样的日期选择器:

HTML:

      <asp:TextBox ID="fecha_ini" ClientIDMode="Static" runat="server"></asp:TextBox>
        <asp:Calendar ID="Calendar2" runat="server" OnSelectionChanged="DateChange" DayNameFormat="FirstLetter" Font-Names="Tahoma" Font-Size="11px" NextMonthText="." PrevMonthText="." SelectMonthText="»" SelectWeekText="›" CssClass="myCalendar" CellPadding="0">
            <OtherMonthDayStyle ForeColor="#b0b0b0" />
            <DayStyle CssClass="myCalendarDay" ForeColor="#2d3338" />
            <DayHeaderStyle CssClass="myCalendarDayHeader" ForeColor="#2d3338" />
            <SelectedDayStyle Font-Bold="True" Font-Size="12px" CssClass="myCalendarSelector" />
            <TodayDayStyle CssClass="myCalendarToday" />
            <SelectorStyle CssClass="myCalendarSelector" />
            <NextPrevStyle CssClass="myCalendarNextPrev" />
            <TitleStyle CssClass="myCalendarTitle" />
        </asp:Calendar>
    </td>
 <td>
                <asp:TextBox ID="fecha_fin" ClientIDMode="Static" runat="server"></asp:TextBox>
                <asp:Calendar ID="Calendar1" runat="server" OnSelectionChanged="DateChange" DayNameFormat="FirstLetter" Font-Names="Tahoma" Font-Size="11px" NextMonthText="." PrevMonthText="." SelectMonthText="»" SelectWeekText="›" CssClass="myCalendar" CellPadding="0">
                    <OtherMonthDayStyle ForeColor="#b0b0b0" />
                    <DayStyle CssClass="myCalendarDay" ForeColor="#2d3338" />
                    <DayHeaderStyle CssClass="myCalendarDayHeader" ForeColor="#2d3338" />
                    <SelectedDayStyle Font-Bold="True" Font-Size="12px" CssClass="myCalendarSelector" />
                    <TodayDayStyle CssClass="myCalendarToday" />
                    <SelectorStyle CssClass="myCalendarSelector" />
                    <NextPrevStyle CssClass="myCalendarNextPrev" />
                    <TitleStyle CssClass="myCalendarTitle" />
                </asp:Calendar>

            </td>

.CS 控制器

 protected void Page_Load(object sender, EventArgs e)
     {
 fecha_ini.Text = DateTime.Today.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
 fecha_fin.Text = DateTime.Today.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
                    Thread.CurrentThread.CurrentCulture = new CultureInfo("es-MX");
     }

 protected void DateChange(object sender, EventArgs e)
        {
            fecha_fin.Text = Calendar1.SelectedDate.ToString("dd/MM/yyyy");
            fecha_ini.Text = Calendar2.SelectedDate.ToString("dd/MM/yyyy");

        }

问题是当我在第二个日历中选择日期时,它会正确更改它但将第一个日历日期刷新回今天,我该如何解决?问候

【问题讨论】:

    标签: c# asp.net date datetime


    【解决方案1】:

    您需要将 TextBoxes 的初始设置包含在 IsPostBack 检查中。如果不是,它们将在每次回发时重置。

    protected void Page_Load(object sender, EventArgs e)
    {
        Thread.CurrentThread.CurrentCulture = new CultureInfo("es-MX");
    
        if (!IsPostBack)
        {
            fecha_ini.Text = DateTime.Today.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
            fecha_fin.Text = DateTime.Today.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
        }
    }
    

    【讨论】:

      【解决方案2】:

      页面回发时会触发您的页面加载事件。尝试将您的语句包装在 if 语句中,以便它仅在页面加载时执行。

      if (!IsPostBack)
         {
            fecha_fin.Text = Calendar1.SelectedDate.ToString("dd/MM/yyyy");
            fecha_ini.Text = Calendar2.SelectedDate.ToString("dd/MM/yyyy"); 
      
          }
      

      【讨论】:

        猜你喜欢
        • 2021-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多