QuickPager分页控件的特点

解决方案 »

  1.   

    使用前,需要在web.config里面注册控件和链接字符串 
    <?xml version="1.0"?>
    <configuration>
      <!--URL重写的设置,居然必须是第一个-->
      <configSections>
        <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
      </configSections>
      
      <appSettings>
        <add key="DataBaseType" value="1"/>
        <add key="PagerSQLKey" value="63432870"/>
      </appSettings>
      <connectionStrings>
        <add name="ConnectionString" connectionString="Data Source=.;Initial Catalog=Nature_Demo;persist security info=False;user id=sa;pwd=admin;" providerName="System.Data.SqlClient"/>
      </connectionStrings>  <!--重写规则-->
      <RewriterConfig>
        <Rules>
          <!--URL重写的演示-->
          <RewriterRule>
            <LookFor>~/QuickPager/URL/list(\d+)\.aspx</LookFor>
            <SendTo>~/Nonline/QuickPager/URL/URLRewriter.aspx?page=$1</SendTo>
          </RewriterRule>
        </Rules>
      </RewriterConfig> 
      <system.web>
        <!--URL重写的设置-->
        <httpHandlers>
          <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
        </httpHandlers>    <pages>
          <!--注册自定义控件-->
          <controls>
            <add assembly="Nature.WebControls" namespace="Nature.WebControls" tagPrefix="Nature"/>
          </controls>
        </pages>        <compilation debug="true" tempDirectory="t:\" />
            <authentication mode="Windows"/>
          </system.web>
      </configuration> 
    Postback最简单的设置/// <summary>
        /// postback 的最简单的分页设置
        /// </summary>
        public partial class Simpleness : BaseWebPage
        {
            #region 初始化
            protected override void OnInit(EventArgs e)
            {
                base.OnInit(e);            //数据访问函数库的实例,使用基类里定义的。
                Pager1.DAL = base.Dal ;            //设置显示数据的控件
                Pager1.ShowDataControl = this.GV;            //定义QuickPager_SQL,设置Page属性
                Pager1.PagerSQL.Page = this;
                //默认是PostBack的分页方式        }
            #endregion        protected void Page_Load(object sender, EventArgs e)
            {
                if (!Page.IsPostBack)
                {
                    SetPagerInfo();         //设置表名、字段名等
                }        }        #region 给QuickPager_SQL 设置属性,以便拼接SQL
            private void SetPagerInfo()
            {
                //表名或者视图名,必须设置
                Pager1.PagerSQL.TableName = "Manage_FunListCol";              //表名或者视图名称
                //一些分页算法必须设置主键。
                Pager1.PagerSQL.TablePKColumn = "ListColID";             //主键名称,不支持复合主键
                //排序字段也是必须设置的,否则就无法准确分页
                Pager1.PagerSQL.TableOrderByColumns = "ListColID desc "; //排序字段,根据分页算法而定,可以支持多个排序字段
                
                //默认TableShowColumns是 * ,可以不设置
                //Pager1.PagerSQL.TableShowColumns = "*";    //需要显示的字段
                //没有查询条件,那就不用设置了嘛。
                //Pager1.PagerSQL.TableQuery = "";                      //查询条件            //默认一页20条记录
                //Pager1.PageSize = 4;                                  //一页显示的记录数            //设置分页方式,默认是Max_TopTop
                //Pager1.PagerSQL.SetPagerSQLKind = PagerSQLKind.Max_TopTop;
            }
            #endregion
        }
    URL 手动运行的基本设置/// <summary>
        /// URL 的完全自定义分页 
        /// </summary>
        public partial class URL01 : System.Web.UI.Page
        {
            protected override void OnInit(EventArgs e)
            {
                base.OnInit(e);
     
                //设置为URL方式分页
                //Pager1.PagerTurnKind = PagerTurnKind.URL;
                //设置为自定义分页
                //Pager1.PagerRunKind = PagerRunKind.Customer;            //以上两个属性可以在前面通过属性面板来设置,也可以在这里设置。
                //本demo是在前台通过属性来设置的。        }        protected void Page_Load(object sender, EventArgs e)
            {
                //设置必要的属性
                setPagerInfo();            //获取指定的页号。
                string str = "用户要看第{0}页的记录。";
                this.lbl_Msg.Text = string.Format(str, this.Pager1.PageIndex.ToString());        }        private void setPagerInfo()
            {
                //设置总记录数。您可以用您自己喜欢的方式来获取
                Pager1.PageCount = 102;            //每页记录数
                Pager1.PageSize = 10;
                
                //设置导航页号的数量
                Pager1.NaviCount = 5;        }
        } 
      

  2.   

    对了,忘记说了,样式可以通过css来修改。上一页、下一页等,都可以通过属性来修改。  
      

  3.   

    能想aspnetpager那样css不?
    没细看
      

  4.   

    可以设置css。显示数据的部分,比如GridView的设置,<table>的设置,和本控件没有关系,本控件只负责绑定控件。<table>的列 <tr>如何设置,也是和本控件无关的。 
      

  5.   


    不错好像还是只能单字段排序如果是JQUERY无刷新翻页pagination不错这个给LZ参考一下
      

  6.   

    可以根据生成的html里的ID来设置css,每个都有单独的ID只是现在的ID设置还是不太规范。需要修改一下。现在有一个比较简陋的jQuery的ajax分页,基本功能实现了,只是还不够完善。
      

  7.   

    用过jqgrid分页还可以。真正的无刷新吧。列宽可以拖东的
      

  8.   


    同样呀,你说的似乎也不是大众的吧。到底大众的想法是什么样子的呢?至少这么设置,想更新的话可以更新,不想更新的话,就不去点,没有大碍。如果没有连接,这个时候又想更新怎么办呢?按F5?做个控件也不容易,只考虑大众也不行,还有小众呢。
    对了,想起来一个例子,就是csdn的。csdn的论坛,回复一次就会被提到第一页,那么第一页的更新速度是很快的。几分钟就会更新一次,甚至更短。打开第一页,选择几个感兴趣的贴子,打开看看,然后呢?你们会做什么?我会再点一下第一页,这时候第一页的贴子就会有些变化。只是我是点的左面的树里的节点。
      

  9.   


    谢谢找bug。马上考虑修改。
      

  10.   

    http://demo.naturefw.com/Nonline/QuickPager/PostBack/Simpleness.aspx直接点第四页,在点上一页,点2下后就会页面无法显示
    还有就是输入大于总页数时是不是跳到最后一页更好呢哈哈
      

  11.   


    1、我按照你的操作,试了一下,没有出现问题。网站的IIS数只有200  。可能是同时访问人数过多,造成的页面无法显示。请问,你说的页面无法显示,是asp.net的那种错误信息吗?还是其他的错误?2、当输入的页号大于总页数的时候,是会跳到最后一页的。但是这个页号必须是整数。不知道你测试的时候是不是输入的小数。如果页号是小数的话,会认定为不正确的页号,从而跳到第一页。谢谢你的测试。
      

  12.   

    服务器空间的IIS数太少了,很容易出现无法访问的问题。
      

  13.   

    仔细看看,我现在还在用jons的字符串
      

  14.   

    替大家说句:请把控件独立出来,不要让人家下你一大堆dll.
      

  15.   


    可以考虑把QuickPager分页控件独立出来。不过似乎我要维护两套程序了。
      

  16.   


    你说的数据绑定指的是什么呢?1 楼有代码。如果你说的是控件的绑定,比如GV.DataBind()的话,那么完全不用操心,您根本不需要写这个代码,只需要  //设置显示数据的控件
      Pager1.ShowDataControl = this.GV;
    只需要把控件ID设置给ShowDataControl 属性即可。
    如果是说数据如何显示的话,也就是GridView等控件的列、模板如何设置,那这个就和分页控件没有关系了。
    =============关于数据如何显示的问题,如果是后台的数据列表,那么可以用我的“数据显示控件”,这个不用写代码,只需要设置元数据即可。但是前台网页的话,那就只有手动写代码了,因为页面里的列表实在是太灵活了。
      

  17.   

    我先收藏下,回头看看,找找Bug!