2017-10-20 54 views
1

J'ai deux dates ramasseurs comme ceci:confli entre les calendriers

enter image description here

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> 

contrôleur .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"); 

     } 

Problème lorsque je sélectionne la date dans le deuxième calendrier, il la modifie correctement, mais actualise la première date du calendrier à Aujourd'hui, comment puis-je résoudre ce problème? Regards

Répondre

1

Vous devez envelopper le paramètre initial des TextBoxes dans une vérification IsPostBack. Sinon, ils seront réinitialisés chaque fois qu'il y a un Postback.

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); 
    } 
} 
0

Votre événement de chargement de page est déclenché lors de la publication de la page. Essayez d'encapsuler votre instruction dans une instruction if afin qu'elle s'exécute uniquement lorsque la page est chargée.

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

    }