2012-01-05 2 views
5

손님을 선택할 수있는 페이지가 있습니다. 페이징 이제 (- -> 마법사 컨트롤>의 gridview 제어판 -> 업데이트 패널)마법사 컨트롤 내의 Gridview 사용자 정의 페이징이 asp.net에서 올바르게 작동하지 않습니다.

이 페이지는 업데이트 패널 내에서 마법사 컨트롤이 마법사 컨트롤에있는 gridview가, 업데이트 패널을 포함 잘 작동하지 않습니다. 인터넷에서 답변을 검색했지만 올바른 대답을 찾지 못했습니다. 나는 사용자 지정 페이징을 사용합니다.

페이지 번호 (두 번째 또는 마지막 페이지까지)를 변경하려면 제대로 작동합니다. 그러나 행을 선택하거나 다른 페이지로 이동하려면 gridview가 올바로 작동하지 않습니다. 두 번째 또는 마지막 페이지에서 A 행을 선택하면 (다른 페이지가 작동하지 않음) 선택된 게스트 (항목)는 항상 첫 페이지 중 하나입니다. 두 번째 또는 마지막 페이지의 다른 페이지로 변경하고 싶다면 선택되지 않은 페이지에서 계속 작동합니다.

이 문제를 해결할 방법이 있습니까? 코드의

부분 :

   <asp:Panel ID="PnlRe" Style="display: none; ... > 
    <asp:UpdatePanel ID="UpdtPnlDetail" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
     ... 
     <asp:Wizard ID="wzd" runat="server" ... > 
      ... 
      <asp:WizardStep ID="WizardStep3" runat="server" Title="Naam"> 
         ... 
          <asp:Gridview ID="Gridview1" runat="server" AutoGenerateColumns="False" 
           DataKeyNames="GastID,Versie" DataSourceID="odsGasten" EmptyDataText="...." 
           OnRowCommand="Gridview1_RowCommand" OnPageIndexChanging="Gridview1_PageIndexChanging" 
           OnPageSizeChanging="Gridview1_PageSizeChanging" OnSearching="Gridview1_Searching" 
           OnSorting="Gridview1_Sorting" OnRowDataBound="Gridview1_RowDataBound" 
           CausesValidation="False" meta:resourcekey="..." PagerType="Custom" 
           ShowFilter="True" ShowInsertRecord="True" ShowPageSizer="True" UseSubmitBehaviour="False"> 
           <Columns> 
            <asp:TemplateField ShowHeader="False" meta:resourcekey="..."> 
             <ItemTemplate> 
              <asp:ImageButton runat="server" CommandName="Select" CausesValidation="False" SkinID="uprowbutton" 
               ToolTip="..." ID="ImgBtnSelect" meta:resourcekey="..."> 
              </asp:ImageButton> 
             </ItemTemplate> 
            </asp:TemplateField> 
            ... Boundfields ... 
           </Columns> 
          </asp:Gridview> 
         ... 
        </asp:WizardStep> 
        ... 
    </asp:Wizard> 
    </ContentTemplate> 
</asp:UpdatePanel> 

protected void Gridview1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    this.odsGasten.FilterExpression = searchText; 
    this.Gridview1.DataBind(); 
    this.UpdtPnlDetail.Update(); 
} 
+2

조건부 UpdatePanel을 사용하고 있지만 트리거가 표시되지 않습니다. 이들을 생략 했습니까? 아니면 트리거가 등록되어 있지 않습니까? 조건부로 UpdatePanel을 유지해야하는 경우 PageIndexChanging 이벤트를 트리거로 등록해야한다고 생각합니다. –

답변

0

이를 달성하기 까다로운 방법이, 당신은 당신의 데이터 소스를 조작 할 수 있습니다. 예를 들어 데이터 테이블을 사용하는 경우 dt의 처음 10 개 요소를 선택하여 그리드에 바인딩하고 다음 버튼을 클릭하면 dt의 다음 10 개 요소를 가져 와서 gridview에 바인딩해야합니다. 이것은 당신의 업무를 쉽게하고 당신의 페이지를위한 성과를 더 얻을 것이다.

0

GridView1_PageIndexChanging에서 this.GridView1.DataBind()가 호출되었지만 탐색 할 페이지 인덱스로 저장되고 업데이트 된 currentPageIndex는 어디에서 발생 했습니까?

0

당신은 viewstate 문제가있는 것처럼 들리 네.

초기화와로드 사이에 viewstate 또는 새 바인드에서 그리드의 소스 세트가 있어야합니다.