2012-09-12 5 views
0

현재 Obout Calendar 컨트롤을 사용하여 날짜 범위 검색 기능을 구현하려고합니다. 아이디어는 사용자가 Obout 달력에서 날짜를 선택할 수 있으며 그 다음에 asp : TextBox를 채 웁니다. 양식에 다른 필드가 있지만이 필드가 손상됩니다. 또한 양식의 모든 필드를 지우는 기능인 폼의 맨 아래에 asp : Button이 있습니다. 그것은이와 뒤에있는 코드에서이 작업을 수행합니다비동기 포스트 백 이후에 UpdatePanel의 Obout Calendar가 엉망입니다.

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.에서 매우 유사한 문제가 발견되었습니다. Obup 달력을 포함하지 않았을 때 내용을 복제하는 UpdatePanel의 문제가 발생했습니다. 텍스트 상자를과 같이 : 난 단지 ASP를 둘러싸고 내 UpdatePanels를 이동하여이 문제를 해결 이것은 또한 내가 원래 문제를 해결 Obout 달력을 업데이트하지 않은 것을 의미

<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> 

.

관련 문제