2011-02-23 79 views
2

尝试分页。Asp .Net Gridview分页

<PagerStyle HorizontalAlign="Right" CssClass="paging"/> 
      <PagerTemplate> 
      <table width="100%"> 
       <tr> 
        <td style="text-align:left; width:50%"> 

         <asp:LinkButton ID="lnkPrv" Visible="false" CommandName="Page" CommandArgument="Prev" runat="server">Previous</asp:LinkButton> 
        </td> 
        <td style="text-align:right; width:50%;padding-left:50%;">       
         <asp:LinkButton ID="lnkNext" CommandName="Page" CommandArgument="Next" runat="server">Next</asp:LinkButton> 
        </td> 
       </tr> 
      </table> 
     </PagerTemplate> 

代码背后低于

protected void gvProduct_PageIndexChanging(object sender, GridViewPageEventArgs e) 
    { 
     Literal1.Visible = gvProduct.PageIndex == 0; 

     LinkButton lnkPrv = (LinkButton)gvProduct.BottomPagerRow.FindControl("lnkPrv"); 
     LinkButton lnkNext = (LinkButton)gvProduct.BottomPagerRow.FindControl("lnkNext"); 

     lnkPrv.Visible = e.NewPageIndex > 0; 
     lnkNext.Visible = e.NewPageIndex < gvProduct.PageCount - 1; 
     gvProduct.PageIndex = e.NewPageIndex; 
     FillGrid(); 
    } 

的代码不给任何错误。我可以看到它将可见属性设置为true/false。 但页面上的实际控制保持不变(每个页面始终可见)。 '

出了什么问题?

+0

您可以发布您的FillGrid方法的代码? – PhilPursglove 2011-02-23 18:04:21

+0

做任何答案都有帮助吗?如果是这样,你能回答这个问题吗? – Brady 2011-02-24 14:49:21

回答

2

如果您的FillGrid()方法重新绑定gvProduct(即gvProduct.DataBind()),那么lnkPrv和lnkNext Visible值将在数据绑定时使用标记中的默认值。您需要在gvProduct的RowDataBound事件的事件处理函数中设置这些控件的可见性。

protected void gvProduct_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
      Literal1.Visible = gvProduct.PageIndex == 0; 
      gvProduct.PageIndex = e.NewPageIndex; 
      FillGrid(); 
} 

protected void gvProduct_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.Pager) { 
     LinkButton lnkPrv = (LinkButton)e.Row.FindControl("lnkPrv"); 
     LinkButton lnkNext = (LinkButton)e.Row.FindControl("lnkNext"); 
     lnkPrv.Visible = gvProduct.PageIndex > 0; 
     lnkNext.Visible = gvProduct.PageIndex < gvProduct.PageCount - 1; 
    } 
}