Repeater,DataList或者可以枚举集合的页导航控件

分享于 

9分钟阅读

Web开发

  繁體

介绍

我决定创建一个独立的控制来处理分页,而不是试图创建一个增强的中继器。 这里 CollectionPager 充当控件( 就像 Repeater ) 和你的数据源(。Dataset 或者 Collection 对象)的中间人。 它使用 PagedDataSource 类来完成这个任务。

在单独的控件中拥有这里功能允许你向任何接受数据源的Web控件添加分页。 此外,可以将 CollectionPager 放置到与控件绑定到的控件处。

Example of the Pager in action.

导航示例。

Example of the Pager in action.

postback 或者 QueryString 选项

这里控件还允许你使用两种不同的方法来浏览你的集合:

  • QueryString。当你不需要/需要 postback 数据时使用。 通过控件的属性,可以将 QueryString 键设置为使用。 默认的密钥是" Page"。
  • postback。当需要/需要 postback 数据时使用。 当你想要维护viewstate时有帮助。

使用控件

使用该控件,只需向 complied DLL添加一个引用,并将它的放入你的工具箱中。 然后你可以将它拖到你的项目中。 如果你想手工做,它会看起来像在你的. aspx 文件中。"。"。

<%@RegisterTagPrefix="cc1"Namespace="SiteUtils"Assembly="CollectionPager"%><%@Pagelanguage="c#"Codebehind="Example.aspx.cs"AutoEventWireup="false"Inherits="CollectionPagerExample.WebForm1"%><HTML><HEAD><TITLE>Collection Repeater Example</TITLE></HEAD><BODY><DIV><ASP:LITERALid=litDifferentResultsFormat runat="server"></ASP:LITERAL></DIV><DIV><ASP:LITERALid=litTopPager runat="server"></ASP:LITERAL></DIV><ASP:REPEATERid="Repeater1"runat="server"><HEADERTEMPLATE><TABLEBORDER="1"CELLPADDING="3"CELLSPACING="0"><TR><TH>Header1</TH><TH>Header2</TH><TH>Header3</TH><TH>Header4</TH><TH>Header5</TH></TR></HEADERTEMPLATE><ITEMTEMPLATE><TR><TD><%# DataBinder.Eval(Container.DataItem, "Column1") %></TD><TD><%# DataBinder.Eval(Container.DataItem, "Column2") %></TD><TD><%# DataBinder.Eval(Container.DataItem, "Column3") %></TD><TD><%# DataBinder.Eval(Container.DataItem, "Column4") %></TD><TD><%# DataBinder.Eval(Container.DataItem, "Column5") %></TD></TR></ITEMTEMPLATE><FOOTERTEMPLATE></TABLE></FOOTERTEMPLATE></ASP:REPEATER><CC1:COLLECTIONPAGERid="CollectionPager1"runat="server"></CC1:COLLECTIONPAGER></BODY></HTML>

在代码后面,只需向 CollectionPager1 对象提供数据源。 如果使用 Dataset 作为数据源,则需要传递它的DataView。"。 例如:

publicclass WebForm1 : System.Web.UI.Page 
{ 
 protected System.Web.UI.WebControls.Repeater Repeater1; 
 protected SiteUtils.CollectionPager CollectionPager1; 
 privatevoid Page_Load(object sender, System.EventArgs e) 
 { 
 //Create DataSet DataSet SampleDataSet = SampleData();//Set DataSource of Pager to Sample Data  CollectionPager1.DataSource = SampleDataSet.Tables[0].DefaultView;
 //Let the Pager know what Control it needs to DataBind during the PreRender. CollectionPager1.BindToControl = Repeater1; //UPDATED! //The Control now takes the object you are binding to,// instead of the name of it (as a string) //Set the DataSource of the Repeater to the PagedData coming from the Pager.  Repeater1.DataSource = CollectionPager1.DataSourcePaged; 
 //Done! } 
 protectedoverridevoid Render(HtmlTextWriter writer)
 {
 //Example of how to have the results show up in a different spot. litDifferentResultsFormat.Text = 
 CollectionPager1.BuildResults("Currently viewing {0} through {1}");
 //Example of how to have a second pager that is tied in... litTopPager.Text = CollectionPager1.RenderedHtml;
 base.Render (writer);
 }
. . . other stuff.. .
}

控件属性

这里控件具有许多属性,可以自定义它的外观。 每个部分都允许你指定 CssClassStyle。 你还可以控制在页码之间使用的字符。 以下是可用属性的屏幕截图:

安装

安装控件

你可以按标准方式安装该控件:

  • 在网站( 如果还没有)的应用程序 root 中创建一个"纸盒"文件夹。
  • 将程序集文件 CollectionPager.dll 复制到bin文件夹中。

安装演示文稿

用演示文稿解压ZIP文件。 右键单击"collectionpagerexample"子文件夹并选择属性。 在属性窗口中,单击"网络共享"并检查"共享这里文件夹"。

然后,你应该能够浏览到:

在 Visual Studio 中打开解决方案

解压文件夹的root 中应该有一个" collectionpagersolution.sln"文件。 打开这里文件时,可能会提示你输入CollectionPagerExample位置。 使用浏览按钮查找CollectionPagerSample文件夹。

祝你好运 !

如果你有什么问题或者想法,请让我知道。 因为这是我第一个,文章,希望我足够清楚它的作用以及如何使用它。 谢谢 !

更新:

2005/10/14

  • 我已经添加了"滑块"功能。 嘿我想不出一个更好的NAME ! :)。"。"。当你有页码中的页码列表时。"。"。 如果你在 20页上,你的slider 大小是 10,那么它可以移动。 寻呼程序将显示到 15 -25的链接。 如果你向下到 19页,它将显示到 14 -24的链接。 使用 SliderSizeUseSlider 属性使它的发生。 :- )
  • 中继器现在 对象 作为 BindToControl 属性。这应该在使用用户控件和。 注意,现在有一个将控件与用户控件一起使用的示例。
  • 其他其他调整。请享用 !

) ( 重大更新)

  • 我已经为寻呼机增加了许多功能和灵活性。
  • 现在可以让它显示一个"首"和"最后"按钮/链接,允许用户跳转到那些页面。
  • 现在可以在左侧,右侧,拆分或者无显示上一个/下一个按钮。
  • 你还可以在后面的代码中访问 ResultsInfo。 这允许你将这里信息放置在页面的其他位置。 请参阅示例。
  • 我已经添加了viewstate函数来正确加载和保存回发之间的viewstate。
  • 通过使用" RenderedHTML"属性,你可以在网格上方轻松创建第二个页导航。 请参阅示例。

2005/04/07

  • 添加了 ShowBackNextLinks 属性以允许你显示或者隐藏后面的按钮/链接。
  • 添加了 ShowPageNumbers 属性以允许你显示或者隐藏页码。

2005/03/22

  • 添加了 PagingMode 属性以允许你选择更改页的QueryString 或者 postback 方法。
  • 修正了"whylove"报告的Bug - 谢谢 !

2005/03/10

  • 添加了 QueryStringKey 属性。允许在单个页面上有多个控件。 对每个控件使用唯一的键。
  • 也修复了用户报告的Bug。 感谢 Marc !

数据  控制  rep  COL  Collect  collection  
相关文章