datalist中的数据分页使用服务器端编码

时间:2011-05-30 09:32:59

标签: asp.net-3.5 datalist data-paging

我必须对我现有应用程序中的datalist实现数据分页。

我有什么

存储过程 - if else条件

If(Seacrh Criteria) 
     Select based on Search Criteria
Else
     Select every product

现在,我想在aspx页面上的datalist中实现数据分页。问题是我需要将ObjectDataSource指定给绑定到网格视图的存储过程。

我不想从查询字符串中获取任何参数。由于我有多个seacrh参数,另一个原因是我不想回发。

我的解释可能会令人困惑,因为我想解释每一件事。

我会尝试总结一下

  • 我有一个datalist控件。
  • 我希望使用现有的存储过程进行数据分页。
  • 我已经为存储过程创建了一个数据集[通过添加新项]。 [Product.xsd]
  • 我不想从Querystring中获取任何参数,我需要从服务器端获取近15个参数。
  • 我的存储过程已准备就绪。请按此tutorial
  • 进行操作
  • 我应该在ObjectDataSource的TypeName属性中写什么?

EDIT1

我看到了一个更好的Linq to Sql示例,但我的问题是我的存储过程太大,无法转换为linq查询。有什么帮助吗?

3 个答案:

答案 0 :(得分:0)

您应该能够在数据源而不是QueryString中使用Session变量。您可能需要编写一些代码来获取搜索条件并将它们放入会话变量中。

真的没有办法避免回发。您可以使用ajax缓解页面刷新。

答案 1 :(得分:0)

第一个选项:您可以关注matt eisenberg回答

第二个选项:如果你真的想避免回发,我认为唯一的方法是将所有数据加载到视图中,然后使用javascript进行分页。但是,如果按照这种方式进行操作,那么当您的数据变得越来越大时就会出现问题。

如果我是你,我将使用Session和AJAX。

答案 2 :(得分:0)

你可以看一下http://www.liberty.co.uk/fcp/categorylist/dept/liberty-of-london_womenswear。非常有趣的是,他们通过在cssclass中嵌入选项来使用客户端过滤。