Реализация управления пейджером для gridview? - PullRequest
0 голосов
/ 02 декабря 2010

Есть ли способ выбрать количество записей / строк для отображения в сетке в раскрывающемся списке?

Ответы [ 2 ]

1 голос
/ 02 декабря 2010

Если вы имеете в виду динамическое изменение количества строк в зависимости от выбора DDL, обязательно это можно сделать.

Я бы предложил использовать метод AJAX для действия выбора, которое будет запрашивать в БД запросТочное количество строк и возврат.Слишком часто я видел запрос, возвращающий тысячи строк, и пейджинг и т. Д. Выполняются в памяти.Гораздо эффективнее просто получать строки / страницы непосредственно из БД и сохранять пропускную способность.

Не уверен, что это именно то, о чем вы просили, но надеюсь, что это поможет.

0 голосов
/ 02 декабря 2010

Вы также можете использовать RowCreated для создания вашего выпадающего списка в Codebehind. Посмотрите на следующий пример (VB.Net):

    Private Sub Yourgrid_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles Yourgrid.RowCreated
        Select Case e.Row.RowType
            Case DataControlRowType.Pager
                Dim ddlPager As New DropDownList
                ddlPager.ID = "DdlPager"
                ddlPager.AutoPostBack = True
                ddlPager.ToolTip = "Change Pagesize"
                ddlPager.Items.Add("5")
                ddlPager.Items.Add("10")
                ddlPager.Items.Add("25")
                ddlPager.Items.Add("50")
                ddlPager.Items.Add("100")
                ddlPager.SelectedValue = "10"
                AddHandler ddlPager.SelectedIndexChanged, AddressOf Me.PageSizeChanged
                e.Row.Cells(0).ColumnSpan -= 1
                Dim td As New TableCell
                Dim span1 As New Label
                span1.Text = "Show"
                span1.Style("margin-left") = "50px"
                td.Controls.Add(span1)
                td.Controls.Add(ddlPager)
                Dim span2 As New Label
                span2.Text = "rows per page"
                td.Controls.Add(span2)
                e.Row.Cells.Add(td)
        End Select
    End Sub

    Private Sub PageSizeChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim ddlPager As DropDownList = DirectCast(sender, DropDownList)
        Dim newPageSize As Int32 = Int32.Parse(ddlPager.SelectedValue)
        YourGrid.PageSize = newPageSize 'change the PageSize of the Grid'
        DataBindYourGrid() 'call the function that Binds your grid to the Datasource'

        UpdYourgrid.Update() 'if you use Ajax, update the UpdatePanel of this GridView'
    End Sub

Таким образом вы автоматически генерируете Dropdonwlist на каждом постбеке и добавляете его в пейджер Gridview. Код можно использовать для любого GridView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...