Asp .Net Gridview пейджинг - PullRequest
       3

Asp .Net Gridview пейджинг

2 голосов
/ 23 февраля 2011

Попытка подкачки сетки.

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

Код не выдает никакой ошибки. Я вижу, что для свойства visible установлено значение true / false. Но фактический контроль на странице остается тем же самым (всегда видимым на каждой странице). «

Что не так?

1 Ответ

2 голосов
/ 23 февраля 2011

Если ваш метод FillGrid () выполняет повторное связывание gvProduct (т.е. gvProduct.DataBind ()), тогда значения lnkPrv и lnkNext Visible будут использовать свои значения по умолчанию из разметки при привязке данных.Вам нужно установить видимость этих элементов управления в обработчике события для события RowDataBound 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;
     }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...