4

我使用实体框架 1.0 并尝试使用可以访问我的外观的 objectdatasource 提供 Gridview。问题是,它似乎特别困难,并且没有看到任何真正做我希望它在互联网上做的事情。

对于那些知道,使用 objectdatasource 馈送的 gridview,它不能自动排序,那么您必须手动进行。没那么糟糕。当我们将分页和过滤器设置添加到 gridview 的数据源时,它变成了一场噩梦。

在互联网上搜索了几个小时后,我问你们,伙计们,是否有人知道一个可以解释我如何混合分页排序过滤的网格视图和对象数据源的链接!

在此先感谢并为我的英语感到抱歉。

4

4 回答 4

5

你可能不再感兴趣,但我想我还是发布了一个答案:

我正在使用 Linq2Sql 和 ObjectDataSource,它可以很好地进行分页和排序。

我实现了一个用作 ObjectDataSource 的类。它有一个 Select 和一个 Count 方法调用我的业务层,它使用Linq2SQL查询从数据库中检索数据,应该与 EntityFramework 类似。select 方法自动获取第一项索引、页面大小和排序表达式作为参数。

public List<EntityClass> Select(int startIndex, int pageSize, string sortBy) {}
public int Count() {}

在 ASPX 中,DataSource 的配置如下:

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server"  
     SelectMethod="Select" EnablePaging="true"
     StartRowIndexParameterName="startIndex" 
     MaximumRowsParameterName="pageSize"
     SortParameterName="sortBy" SelectCountMethod="Count" >   
</asp:ObjectDataSource>

Select 和 Count 方法使用 Linq 查询从数据库中检索数据。我使用Skip()、Take()Orderby()方法。为了让 OrderBy 接受字符串排序表达式,我使用DynamicLinq代码不多,数据绑定、分页和排序都会自动工作。

如果您有兴趣,我可以发布我的代码的更多详细信息。

于 2010-06-11T10:38:46.237 回答
1

终于!经过2天的搜索,终于找到了替代品!看看这个!

http://www.unboxedsolutions.com/sean/archive/2005/12/28/818.aspx

于 2009-08-14T18:51:41.940 回答
1

这个解释相当好和简单:GridView ObjectDataSource LINQ Paging And Sorting

于 2011-04-17T20:10:43.770 回答
0

我知道这是一个老问题,但这就是我处理这个问题的方式。将 ObjectDataSource 添加到我的 aspx 页面:

<asp:ObjectDataSource ID="myDataSource" runat="server"  
   SelectMethod="GetSearchResults" EnablePaging="true"
   StartRowIndexParameterName="startIndex" 
   MaximumRowsParameterName="pageSize"
   SortParameterName="sortBy" SelectCountMethod="GetSearchCount" >   
</asp:ObjectDataSource>

请注意,它缺少一个类型?我在代码中设置它,在我的 Page_Load

myDataSource.TypeName = this.GetType().AssemblyQualifiedName;

然后我在同一页面上(在同一类中)使用静态方法来更新gridview:

public static int GetSearchCount()
{
    return _RowCount;//set elsewhere in code - this is the total number of rows for the query
}

public static DataTable GetSearchResults(string sortBy, int pageSize, int startIndex)
{
     //Code to dynamically generate SQL statements based on supplied parameters
     //then return a datatable containing only the data to be shown in the gridview
}
于 2014-04-01T21:13:34.637 回答