2012-09-12 62 views
0

我正在嘗試使用Obout日曆控件實現日期範圍搜索功能。這個想法是,用戶可以從Obout日曆中選擇一個日期,然後在它旁邊填寫一個asp:TextBox。表格中還有其他字段,但這是一個突破。我在表單底部還有一個asp:Button,它的功能是清除表單中的所有字段。爲此,它會在後面的代碼與此:Obout日曆在UpdatePanel後異步回發

protected void btnClearFields_Click(object sender, EventArgs e) 
{ 
    txtFrom.Text = ""; 
    txtTo.Text = ""; 
} 

而且這裏是有關前端代碼:

<table> 
    <tr> 
     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 
       <td> 
        <asp:Label ID="lblFrom" runat="server" Text="From:"></asp:Label> 
        <br /> 
       </td> 
       <td> 
        <asp:TextBox ID="txtFrom" runat="server"></asp:TextBox> 
       </td> 
       <td> 
        <obout:Calendar runat="server" ID="CalendarFrom" TextBoxId="txtFrom" StyleFolder="Calendar/styles/orbitz" ScriptPath="Calendar/calendarscript" DatePickerButtonText <IMG src='Images/calendar.gif' align=absMiddle border=0>" ShowYearSelector="true" DateMin="1/1/1900" AllowDeselect="false" DatePickerMode="true" /> 
       </td> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
     <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
      <ContentTemplate> 
       <td> 
        <asp:Label ID="lblTo" runat="server" Text="To:"></asp:Label> 
       </td> 
       <td> 
        <asp:TextBox ID="txtTo" runat="server"></asp:TextBox> 
       </td> 
       <td> 
        <obout:Calendar runat="server" ID="CalendarTo" TextBoxId="txtTo" StyleFolder="Calendar/styles/orbitz" ScriptPath="Calendar/calendarscript" DatePickerButtonText <IMG src='Images/calendar.gif' align=absMiddle border=0>" ShowYearSelector="true" DateMin="1/1/1900" AllowDeselect="false" DatePickerMode="true" /> 
       </td> 
      </ContentTemplate> 
     </asp:UpdatePanel> 
    </tr> 
</table> 

現在,我遇到的問題是,當我第一次加載該頁面,所有很好。我可以從日曆中選擇一個日期,並按預期填寫文本框。但是,如果我單擊導致部分回發的「Clear Fields」按鈕,則會出現問題。當我再次點擊日曆圖標時(在清除字段後),彈出的日期選擇器的格式會被搞亂。它的日曆部分只是一個紅色方塊,不能選擇任何日期。年份選擇欄橫跨整個屏幕,並且更改年份對日曆不起任何作用。

我在研究中找不到任何類似的問題,所以我不確定要嘗試什麼。我已經嘗試過在整個表格中只使用一個UpdatePanel,但後來我遇到了同樣的問題。我也嘗試在UpdatePanels中不包括日曆,它不會「中斷」日曆,但它會在我的網頁上放置兩個新的TextBox字段(它將接受來自日曆的任何新值)並且不會清除舊日曆。還試着把按鈕和包含日曆的表放在同一個UpdatePanel中,但是我也得到了同樣的紅色框。

回答

0

this answer.中發現了一個非常類似的問題當我沒有在其中包含Obout日曆時,我遇到了UpdatePanel複製內容的問題。文本框像這樣:我通過移動我的UpdatePanel僅包圍的ASP解決了這個問題

<td> 
    <asp:Label ID="lblFrom" runat="server" Text="From:"></asp:Label> 
    <br /> 
</td> 
<td> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <asp:TextBox ID="txtFrom" runat="server"></asp:TextBox> 
     </ContentTemplate> 
    </asp:UpdatePanel> 
</td> 
<td> 
    <obout:Calendar runat="server" ID="CalendarFrom" TextBoxId="txtFrom" StyleFolder="Calendar/styles/orbitz" ScriptPath="Calendar/calendarscript" DatePickerButtonText <IMG src='Images/calendar.gif' align=absMiddle border=0>" ShowYearSelector="true" DateMin="1/1/1900" AllowDeselect="false" DatePickerMode="true" /> 
</td> 

這也意味着我沒有更新Obout日曆,解決原來的問題。

相關問題