2012-01-12 6 views
0

私は次のPagerTemplateを持っています。ユーザーが最初のページを表示しているときにPreviousリンクを非表示にし、最後のページを表示している場合はNextリンクを非表示にする必要があります。 /前のリンクが表示されるべき次のリンクが表示されるべきであるPageIndex > 0は/ときにのみPageIndex < PageCount - 1を有効にしたときにのみ有効 -GridViewカスタムPagerTemplate、表示前と次のリンクを非表示

   <PagerTemplate> 
        <table border="0" style="width: 100%;"> 
         <tbody> 
          <tr> 
           <td style="float: right;"> 
            <asp:LinkButton CommandName="Page" CommandArgument="Prev" ID="LinkButton2" runat="server"><< Previous</asp:LinkButton> 
            &nbsp;<asp:LinkButton CommandName="Page" CommandArgument="Next" ID="LinkButton3" runat="server" >Next >></asp:LinkButton> 
           </td> 
           <td style="clear: both"></td> 
          </tr> 
         </tbody> 
        </table> 
       </PagerTemplate> 

答えて

3

グリッドのPageIndexPageCountプロパティがここであなたを助けます。

行作成イベントを使用して、コントロールを見つけて可視性を変更します。たとえば、

protected void GridView_RowCreated(Object sender, GridViewRowEventArgs e) 
{ 
    if(e.Row.RowType == DataControlRowType.Pager) 
    { 
     var prev = (LinkButton)e.Row.FindControl("LinkButton2"); 
     prev.Visible = Grid.PageIndex > 0; 

     var next = (LinkButton)e.Row.FindControl("LinkButton3"); 
     next.Visible = Grid.PageIndex < grid.PageCount - 1; 
    } 
} 

現在のUI用のカスタムテンプレートが必要かどうかはわかりません。たとえば、

<pagersettings mode="NextPrevious" 
      nextpagetext="Next >>" 
      previouspagetext="<< Previos" 
      position="Bottom"/> 

のようなページャー設定を使用して、UIのスタイリングにPagerStyleを使用できます。

<PagerStyle CssClass="myPager" /> 
+0

ありがとう – user960567