2011-02-23 3 views
2

Recherche d'une mise en réseau d'une grille.Asp .Net Mise en page 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> 
code

est derrière en dessous

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(); 
    } 

Le code ne donne aucune erreur. Je peux le voir définir la propriété visible sur true/false. Mais le contrôle réel sur la page reste le même (toujours visible sur chaque page). '

Qu'est-ce qui ne va pas?

+0

Pouvez-vous publier le code pour votre méthode FillGrid? – PhilPursglove

+0

L'une des réponses vous aide-t-elle? Si oui, pouvez-vous répondre à cette question? – Brady

Répondre

2

Si votre méthode FillGrid() reconfigure gvProduct (c'est-à-dire gvProduct.DataBind()), les valeurs lnkPrv et lnkNext Visible vont utiliser leurs valeurs par défaut à partir du balisage lors de la liaison de données. Vous devez définir la visibilité de ces contrôles dans un gestionnaire d'événement pour l'événement RowDataBound de gvProduct.

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; 
    } 
}