2013-07-24 3 views
0

enter image description hereASP.NET Остановить повторную загрузку всей страницы при нажатии кнопки?

Поэтому, когда я нажимаю кнопку «Выбрать», календарь будет отображаться, и я могу выбрать дату, а затем исчезнуть после того, как я выбрал дату. Проблема в том, что каждый раз, когда я нажимаю кнопку, вся страница перезагружается, есть ли способ предотвратить ее?

Я новичок в ASP.NET? Вот дизайн-код и фактический код события:

 <tr> 
<td> 
    Expired Date 
</td> 
      <td> 

       <asp:TextBox ID="txtExpDate" runat="server"></asp:TextBox> 

&nbsp;<asp:Button ID="btnSelectDate" runat="server" OnClick="btnSelectDate_Click" Text="Select" /> 
&nbsp;<asp:Button ID="btnClearDate" runat="server" OnClick="btnClearDate_Click" Text="Clear" /> 
      </td><td></td> 

     </tr> 
     <tr> 
<td> 
    &nbsp;</td> 
      <td> 
       <asp:Calendar ID="calExpiredDate" runat="server" BackColor="White" BorderColor="#3366CC" BorderWidth="1px" CellPadding="1" DayNameFormat="Shortest" Font-Names="Verdana" Font-Size="8pt" ForeColor="#003399" Height="200px" Visible="False" Width="220px" OnSelectionChanged="calExpiredDate_SelectionChanged"> 
        <DayHeaderStyle BackColor="#99CCCC" ForeColor="#336666" Height="1px" /> 
        <NextPrevStyle Font-Size="8pt" ForeColor="#CCCCFF" /> 
        <OtherMonthDayStyle ForeColor="#999999" /> 
        <SelectedDayStyle BackColor="#009999" Font-Bold="True" ForeColor="#CCFF99" /> 
        <SelectorStyle BackColor="#99CCCC" ForeColor="#336666" /> 
        <TitleStyle BackColor="#003399" BorderColor="#3366CC" BorderWidth="1px" Font-Bold="True" Font-Size="10pt" ForeColor="#CCCCFF" Height="25px" /> 
        <TodayDayStyle BackColor="#99CCCC" ForeColor="White" /> 
        <WeekendDayStyle BackColor="#CCCCFF" /> 
       </asp:Calendar> 
       <br /> 
      </td><td> 
       &nbsp;</td> 
     </tr> 

protected void btnSelectDate_Click(object sender, EventArgs e) 
     { 
      if (calExpiredDate.Visible == false) calExpiredDate.Visible = true; 
      else calExpiredDate.Visible = false; 
     } 

     protected void btnClearDate_Click(object sender, EventArgs e) 
     { 
      txtExpDate.Text = null; 
     } 


     protected void calExpiredDate_SelectionChanged(object sender, EventArgs e) 
     { 
      txtExpDate.Text = calExpiredDate.SelectedDate.ToShortDateString(); 
      calExpiredDate.Visible = false; 
     } 
+0

Либо используйте ['ASP.NET-Ajax'] (http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/Calendar/Calendar.aspx), либо jQuery. –

ответ

0

Кратчайший решение, чтобы обернуть все в <asp:UpdatePanel>:

<asp:UpdatePanel> 
    <ContentTemplate> 
     your content, buttons, html, etc 
    </ContentTemplate 
</asp:UpdatePanel> 

Он блокирует страницу мерцать вы.

+0

Я поместил все эти текстовые поля, кнопки и календарь внутри UpdatePanel, и теперь, когда я нажимаю кнопку, ничего не произошло? –

+0

OK Я понял, что он работает только в том случае, если другие текстовые поля (у меня есть несколько текстовых полей в форме, все необходимые для заполнения), то есть все остальные действительные элементы управления должны быть действительными. Как заставить его игнорировать другие элементы управления? –

+0

Отключить ПричиныValidation –

0

Сделайте так же, как Garrison Neely, затем для тех текстовых полей, которые вы не хотите проверять, установите для свойства CausesValidation значение 'False'.

Смежные вопросы