2012-01-05 15 views
5

ゲストを選択できるページがあります。ページング今( - - >ウィザードコントロール> GridViewコントロールパネル - >更新パネル)ウィザードコントロール内のGridviewカスタムページングがasp.netで正しく機能しない

このページには、更新パネル内のウィザードコントロールがあるとウィザードコントロールにGridViewコントロールがあり、更新パネルが含まれていますうまくいきませんでした。私はインターネットで回答を探しましたが、正解は見つかりませんでした。カスタムページングを使用します。

ページ番号を(2番目または最後のページに)変更したい場合、正常に動作します。しかし、行を選択したり、別のページに移動したいときは、gridviewが正しく動作しません。 2番目または最後のページでA行を選択すると(他のページは機能しません)、選択されたゲスト(アイテム)は常に最初のページの1つになります。 2番目または最後のページから別のページに変更したい場合は、選択したページには残りません。

この問題を解決する方法はありますか?コードの

一部:

   <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()が呼び出されていますが、移動したいページインデックスで現在のPageIndexがどこに格納され、更新されているのですか?

0

あなたはviewstateの問題があるように私に聞こえます。

InitとLoadの間に、viewstateまたは新しいバインディングからグリッドのソースセットがあることを確認する必要があります。

関連する問題