2011-04-05 6 views
1

아래와 같이 UpdatePanel과 그 안에 일부 컨트롤이 있습니다. txtGoToPage 텍스트 상자에서 숫자를 변경하고 Enter 키를 누르면 GoToPage_TextChanged() 이벤트 핸들러가 호출됩니다. 그러나 1이 아닌 페이지 번호를 먼저 입력 한 다음 Enter 키를 누른 다음 Enter 키를 누른 후 다시 1을 입력하십시오. GoToPage_TextChanged()이 호출되지 않습니다. ddlPageSize 드롭 다운 목록에도 동일한 문제가 있습니다. 보시다시피 기본적으로 세 번째 항목이 선택됩니다. 다른 항목을 선택하면 ddlPageSize_SelectedIndexChanged()이 호출되지만 그 다음에 세 번째 (처음에 선택한 항목)을 선택하면 ddlPageSize_SelectedIndexChanged()이 호출되지 않습니다.UpdatePanel이 이상하게 작동합니다.

해결해 주시겠습니까?

감사합니다.

<asp:UpdatePanel ID="upnlLicensing" runat="server" UpdateMode="Conditional" > 
    <ContentTemplate> 
     ... 
     <asp:Label ID="Label1" runat="server" Text="Show rows:" /> 
     <asp:DropDownList ID="ddlPageSize" runat="server" AutoPostBack="true" 
      OnSelectedIndexChanged="ddlPageSize_SelectedIndexChanged"> 
      <asp:ListItem Value="20" /> 
      <asp:ListItem Value="50" /> 
      <asp:ListItem Value="100" Selected="True" /> 
     </asp:DropDownList> 
     &nbsp; 
     Page 
     <asp:TextBox ID="txtGoToPage" runat="server" AutoPostBack="true" 
      OnTextChanged="GoToPage_TextChanged" CssClass="gotopage" onchange="JSSetSessionValue('ReloadLicensing', true);JSSetSessionValue('NewPageNumber', this.value)" /> 
     of 
     <asp:Label ID="lblTotalNumberOfPages" runat="server" />     
    </ContentTemplate> 
</asp:UpdatePanel> 
+0

업데이트 패널 인 경우 문제가 생길 수 있습니다. 1 : UpdateMode = "Always"또는 2 설정 : UpdatePanel 자체를 제거하고 코드가 UP이 아닌 경우 작동하는지 확인하십시오. – gbs

+0

나는 그것이 UpdatePanel없이 작동했다는 것을 안다. – dpreznik

답변

0

페이지에서 캐싱을 사용하지 않도록 설정하십시오. 때로는 패널 업데이트와 캐싱에 이상한 동작이 결합 될 수 있습니다.

+0

내게 어떻게 UpdatePanel이 포함 된 UserControl에서 캐싱을 비활성화 할 수 있는지 알려주실 수 있습니까? – dpreznik

+0

Response.Cache.SetNoServerCaching()을 추가했습니다. Page_Init() 내 UserControl,하지만 도움이되지 않았다. – dpreznik

+0

페이지로드 이벤트에 다음 코드를 추가하십시오. Response.ExpiresAbsolute = DateTime.Now.AddDays (-1d); Response.Expires = -1500; Response.CacheControl = "no-cache"; 도움이되지 않는 경우 캐싱이 문제가되지 않습니다. – Arthur

관련 문제