使用自定义分页使用ObjectDataSource进行GridView过滤

时间:2013-12-06 15:30:48

标签: c# asp.net entity-framework

我有一个Gridview和一个Object DataSource,可以很好地进行排序和分页。

定义为;

<asp:ObjectDataSource runat="server" ID="oPagedData" SelectMethod ="GetPagedData" TypeName="PagedSortableGridView" EnablePaging="true" SelectCountMethod="GetTotalOfData" 
    SortParameterName="sortExpression" >
    </asp:ObjectDataSource>

我想添加过滤,以便我可以从文本框和复选框中获取值,并将其应用于我的数据(通过entlib检索)。

如果我添加

    <FilterParameters>
         <asp:formparameter name="Name" formfield="tags" defaultvalue="%%" Type="string" />
         <asp:formparameter name="showArchived" formfield="showArchived" defaultvalue="false" />
    </FilterParameters>

进入ObjectDataSource然后它编译好了。但我无法看到我如何在我的linq代码中访问这些参数。

(我试过在方法调用中添加一个params数组,或者两个显式的params来检索  data public List<Dealerships> GetPagedData ,但是当我浏览到那个页面时它失败了,因为它期望一个方法调用只有3个参数,排序列,每页行数和当前索引。)

所以我需要在过滤的ods中定义另一个方法调用,还是有一种方法可以在GetPagedData方法中访问过滤,这样我就可以一次性退出并分页我的数据?

我调查了

oPagedData_Filtering(object sender, ObjectDataSourceFilteringEventArgs e)

但是我希望我的代码落后于我的代码,而不是PagedSortableGridView我的GetTitalDataGetPagedData方法。

1 个答案:

答案 0 :(得分:1)

将显式参数添加到GetPagedDataGetTotalOfData方法,并使用ObjectDataSource而不是{{1}}上的SelectParameters