介绍如何使用SqlPager分页控件

http://tech.ddvip.com   2007年08月27日    社区交流

内容摘要:SqlPager分页控件是一个多功能灵活的分页控件,原理是利用了PagedDataSource()数据源进行分页处理,现此控件已集成于Winson.Framework框架里(以下简称WF),同时也使用了WF框架里的数据库低层操作语句,因此同时也可以支持多种数据库

   本控件支持AJAX分页,但还必须写一些客户端的代码,相关的客户端代码我已在DEMO里有啦,具体可以打开PagerDemo.aspx文件查看,在需要分页的页面上添加以下JS代码:

 function setPageTo(pageIndex)
  {
  var context=document.getElementById("listDIV");
  context.innerHTML="数据加载中";
  var arg=pageIndex;
  <%= ClientScript.GetCallbackEventReference(this, "arg", "onCallServerComplete", "context")%>;
  }
 
  function onCallServerComplete(result,context)
  {
  context.innerHTML=result;
  }

  然后在后台添加相应的AJAX方法,建议使用我DEMO里的方式,将这些代码添加到一个基类页面里,然后各页面继承来用,请看我的BasePage.cs文件,即以下代码:

  Ajax分页处理#region Ajax分页处理

  //引发回调事件处理
  public void RaiseCallbackEvent(string eventArgument)
  {
  serverReturn = eventArgument;
  }
 
  //回传回调结果
  public string GetCallbackResult()
  {
  return PageChange(serverReturn);
  }
  /**//**//**//// <summary>
  /// 执行分页操作
  /// </summary>
  /// <param name="newIndex">新页面的索引</param>
  /// <returns>需显示的页面数据</returns>
  private string PageChange(string newIndex)
  {
  int newPageIndex = int.Parse(newIndex);
  SqlPagerBase.GoToPage(newPageIndex);
  return GetRenderCode();
  }
 
  /**//**//**//// <summary>
  /// 将读取的数据呈现在客户端
  /// </summary>
  /// <returns></returns>
  private string GetRenderCode()
  {
  StringWriter writer1 = new StringWriter(System.Globalization.CultureInfo.InvariantCulture);
  HtmlTextWriter writer2 = new HtmlTextWriter(writer1);
 
  if (GridViewBase != null)
  {
  GridViewBase.Visible = true;
  GridViewBase.RenderControl(writer2);
  }
  else if (RepeaterBase != null)
  {
  RepeaterBase.Visible = true;
  RepeaterBase.RenderControl(writer2);
  }
  else if (DataListBase != null)
  {
  DataListBase.Visible = true;
  DataListBase.RenderControl(writer2);
  }
  else if (ListBase != null)
  {
  ListBase.Visible = true;
  ListBase.RenderControl(writer2);
  }
  SqlPagerBase.RenderControl(writer2);
  writer2.Flush();
  writer2.Close();
  return writer1.ToString();
  }
  #endregion

  注意,如果你要将以上代码放到独立页面,必须要先继承System.Web.UI.ICallbackEventHandler接口!

责编:豆豆技术应用

正在加载评论...