你可以“分配”ASP.NET GridView的PageCount属性吗?

时间:2008-11-12 22:37:47

标签: asp.net gridview pagination

我有一个使用数据存储的Web应用程序,该数据存储具有内置的分页功能。 PagedResult类告诉我总页数。我想做什么(在绑定我的ASP.NET GridView之后)执行此操作:

MyGridView.PageCount = thePageCount;

然后让GridView神奇地构建分页链接,就像通常自己做的那样。

问题是“PageCount”是一个只读属性......那么,我该怎么做呢?

4 个答案:

答案 0 :(得分:2)

要使用内置分页,GridView会与数据源进行交互。 GridView具有PageSize的可设置属性。

如果使用ObjectDataSource,则同时配置SelectMethod和SelectCountMethod。您可以修改PagedResult类以返回记录计数而不是页面计数,或者将PagedResult调用包装在方法中以将页面计数转换为记录计数(PageCount * PageSize)。

如果您的PagedResult类仅用于支持Web应用程序,则应考虑将其修改为更像典型的分页数据源。

答案 1 :(得分:0)

您可以创建自己的类来扩展GridView并覆盖PageCount getter方法以从PagedResult类返回值。

答案 2 :(得分:0)

使用ObjectDataSource控件,将其绑定到GridView,并为SelectCoutnMethod属性设置处理程序。您可能必须为您的类编写一个小包装器对象,以检索与ObjectDataSource控件接口的数据。

一些帮助您的链接:

ObjectDataSource Web Server Control Overview
ObjectDataSource Class

答案 3 :(得分:0)

       Dim myCount as Integer = 1 'this sets the page count to 1 
       While (oreader.Read())
            myCount += 1 'increments once for everytime a item is counted
            'this sets an array for the items to go into
            idFname = oreader.GetOrdinal("workCenter")
            'this retrieves the values at those indices
            fName = oreader.GetValue(idFname)
            BulletedList1.Items.Add(fName)
        End While

    Catch ex As Exception
        BulletedList1.Items.Add("No Workcenters Found")
    Finally
        oreader.Close()
        oconn.Close()
    End Try
End If
Me.insertItemForm.PagerSettings.PageButtonCount = myCount 'sets the page count to number of items in gridview or formview etc.