2010-10-12 2 views
2

Как это сделать? В принципе, рядом с номерами страниц в GridView мне нужна кнопка ссылки, чтобы отключить пейджинг. Это работает, но я хочу кнопку внутри нижнего колонтитула GridView рядом с номерами страниц. Как мне это сделать?Добавление кнопки ссылки в нижний колонтитул GridView в ASP.NET

ответ

2

вы можете добавить следующие строки в коде (при условии, VB.Net в порядке):

Private Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated 
    Select Case e.Row.RowType 
     Case DataControlRowType.Footer 
      Dim LnkBtnPaging As New LinkButton 
      LnkBtnPaging.ID = "LnkBtnPaging" 
      LnkBtnPaging.Text = IIf(GridView1.AllowPaging, "no paging", "paging").ToString 
      AddHandler LnkBtnPaging.Click, AddressOf LnkBtnPagingClicked 
      e.Row.Cells(0).Controls.Add(LnkBtnPaging) 
      e.Row.Cells(0).ColumnSpan = e.Row.Cells.Count 
      While e.Row.Cells.Count > 1 
       e.Row.Cells.RemoveAt(e.Row.Cells.Count - 1) 
      End While 
    End Select 
End Sub 

Private Sub LnkBtnPagingClicked(ByVal sender As Object, ByVal e As EventArgs) 
    Me.GridView1.AllowPaging = Not Me.GridView1.AllowPaging 
End Sub 

Не забудьте изменить идентификатор сетке на ваши годы и добавить ShowFooter="True" в теге GridView в на ASPX.

EDIT: добавлен код автонастройки ColumnCount FOOTER и ColumnSpan

0

Вы можете создать PagerTemplate GridView в. В этом случае вам, вероятно, придется создавать целый пейджер с нуля.

Вы также можете создать свой собственный элемент управления, полученный из GridView, и переопределить InitializePager. В этом методе вы вызываете base.InitializePager (...), после чего вы будете перемещаться по созданной структуре управления и добавлять свою ссылку.

Редактировать: Решение Тима лучше. Мое решение работает, но когда вы отключите пейджинг, ссылка будет скрыта вместе с пейджером.

Смежные вопросы