ASPNETPAGER分页时遇到的问题

yaotomo 2013-04-28 05:54:47
当按条件查询的时候,点下一页的话查询条件就会还原到默认的值
网上的解决方法是用UpdatePanel,我不想用ASP.NETAjax的UpdatePanel解决。也不想重新用Ajax分页。
在AspNetPager里有没有相关的设置可以解决这个问题呢?

我的代码

private void DataInit(string query)
{
DataTable dt = oracleHelpler.ExecuteDataTable(query, CommandType.Text, strConn, null);
PagedDataSource pdsList = new PagedDataSource();
pdsList.DataSource = dt.DefaultView;
pdsList.AllowPaging = true;
pdsList.PageSize = AspNetPager1.PageSize;//取控件的分页大小
pdsList.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;//显示当前页

AspNetPager1.RecordCount = dt.Rows.Count;//记录总数
AspNetPager1.PageSize = 10;
RepeaterList.DataSource = pdsList;
RepeaterList.DataBind();
}

protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
string strQuerySql = BuildQuerySql();
DataInit(strQuerySql);
}

protected void btnsubmit_Click(object sender, EventArgs e)
{
string strQuerySql = BuildQuerySql();
DataInit(strQuerySql);
}

...全文
132 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaotomo 2013-05-03
  • 打赏
  • 举报
回复
谢谢大家。在查询前清除SESSION就好了。
liu_lxx 2013-05-03
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
    {
            string sql_str ="SELECT COUNT(*) FROM YH_GS" ;
            AspNetPager1.AlwaysShow = true;
            AspNetPager1.PageSize = 3; //每页显示的数据量
            AspNetPager1.RecordCount = (int)WebFunction.ExecuteScalar(sql_str); //读出数据库里一共有多少条数据
            BindData();}
    protected void AspNetPager1_PageChanging(object src, PageChangingEventArgs e)
    {
        AspNetPager1.CurrentPageIndex = e.NewPageIndex;
        BindData();
    }
    private void BindData()
    {
        string sql_str = "SELECT * FROM YH_GS";
        string strconn = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString;
        SqlConnection con = new SqlConnection(strconn);
        SqlDataAdapter ad = new SqlDataAdapter(sql_str, con);
        DataSet ds = new DataSet();
        ad.Fill(ds, AspNetPager1.PageSize * (AspNetPager1.CurrentPageIndex - 1), AspNetPager1.PageSize, "YH_GS");

        Dl_fd.DataSource = ds.Tables["YH_GS"];
        Dl_fd.DataBind();
    }
这是以前用过的一次AspNetPager分页,你看看..
City_member 2013-05-03
  • 打赏
  • 举报
回复
用Session

        /// <summary>
        /// 获取条件
        /// </summary>
        private void GetWhere()
        {
            UserDefaultWhere1 UserDefaultWhere1 = new Model.UserDefaultWhere1();
            UserDefaultWhere1.tbCustomer = tbCustomer.Text;
            UserDefaultWhere1.tbProjectName = tbProjectName.Text;
            UserDefaultWhere1.ddlProjectState = ddlProjectState.SelectedValue;
            UserDefaultWhere1.ddlProject = ddlProject.SelectedValue;
            UserDefaultWhere1.txtMLEstimate = txtMLEstimate.Text;
            UserDefaultWhere1.ddlProjectType = ddlProjectType.SelectedValue;
            UserDefaultWhere1.tbBeginDate = tbBeginDate.Value;
            UserDefaultWhere1.tbEndDate = tbEndDate.Value;
            UserDefaultWhere1.ddlwhere = ddlwhere.SelectedValue;
            UserDefaultWhere1.txtProjectBudget = txtProjectBudget.Text;
            UserDefaultWhere1.ddlDept = ddlDept.SelectedValue;
            UserDefaultWhere1.ddlEmployeeID = ddlEmployeeID.SelectedValue;
            UserDefaultWhere1.IsZC = ddlZc.SelectedValue;
            Session["UserDefaultWhere1"] = UserDefaultWhere1;


            UserDefaultWhere2 UserDefaultWhere2 = new Model.UserDefaultWhere2();
            UserDefaultWhere2.tbCustomer = tbCustomer2.Text;
            UserDefaultWhere2.tbProjectName = tbProjectName2.Text;
            UserDefaultWhere2.ddlProjectState = ddlProjectState2.SelectedValue;
            UserDefaultWhere2.ddlProject = ddlProject2.SelectedValue;
            UserDefaultWhere2.txtMLEstimate = txtMLEstimate2.Text;
            UserDefaultWhere2.ddlProjectType = ddlProjectType2.SelectedValue;
            UserDefaultWhere2.AgreementBeginDate = AgreementBeginDate.Value;
            UserDefaultWhere2.AgreementEndDate = AgreementEndDate.Value;
            UserDefaultWhere2.ddlwhere = ddlwhere2.SelectedValue;
            UserDefaultWhere2.txtProjectBudget = txtProjectMoney.Text;
            UserDefaultWhere2.IsZC = ddlZc2.SelectedValue;
            //UserDefaultWhere2.ddlDept = ddlDept.SelectedValue;
            //UserDefaultWhere2.ddlEmployeeID = ddlEmployeeID.SelectedValue;
            Session["UserDefaultWhere2"] = UserDefaultWhere2;

        }

        /// <summary>
        /// 设置查询条件
        /// </summary>
        private void SetWhere()
        {
            if (Session["UserDefaultWhere1"] != null)
            {
                UserDefaultWhere1 UserDefaultWhere1 = Session["UserDefaultWhere1"] as UserDefaultWhere1;
                tbCustomer.Text = UserDefaultWhere1.tbCustomer;
                tbProjectName.Text = UserDefaultWhere1.tbProjectName;
                ddlProjectState.SelectedValue = UserDefaultWhere1.ddlProjectState;
                ddlProject.SelectedValue = UserDefaultWhere1.ddlProject;
                txtMLEstimate.Text = UserDefaultWhere1.txtMLEstimate;
                ddlProjectType.SelectedValue = UserDefaultWhere1.ddlProjectType;
                tbBeginDate.Value = UserDefaultWhere1.tbBeginDate;
                tbEndDate.Value = UserDefaultWhere1.tbEndDate;
                ddlwhere.SelectedValue = UserDefaultWhere1.ddlwhere;
                txtProjectBudget.Text = UserDefaultWhere1.txtProjectBudget;
                ddlDept.SelectedValue = UserDefaultWhere1.ddlDept;
                ddlEmployeeID.SelectedValue = UserDefaultWhere1.ddlEmployeeID;
                ddlZc.SelectedValue=UserDefaultWhere1.IsZC;
            }
            if (Session["UserDefaultWhere2"] != null)
            {
                UserDefaultWhere2 UserDefaultWhere2 = Session["UserDefaultWhere2"] as UserDefaultWhere2;
                tbCustomer2.Text = UserDefaultWhere2.tbCustomer;
                tbProjectName2.Text = UserDefaultWhere2.tbProjectName;
                ddlProjectState2.SelectedValue = UserDefaultWhere2.ddlProjectState;
                ddlProject2.SelectedValue = UserDefaultWhere2.ddlProject;
                txtMLEstimate2.Text = UserDefaultWhere2.txtMLEstimate;
                ddlProjectType2.SelectedValue = UserDefaultWhere2.ddlProjectType;
                AgreementBeginDate.Value = UserDefaultWhere2.AgreementBeginDate;
                AgreementEndDate.Value = UserDefaultWhere2.AgreementEndDate;
                ddlwhere2.SelectedValue = UserDefaultWhere2.ddlwhere;
                txtProjectMoney.Text = UserDefaultWhere2.txtProjectBudget;
                ddlZc2.SelectedValue=UserDefaultWhere2.IsZC ;
            }
        }
md5e 2013-05-03
  • 打赏
  • 举报
回复
还有查询也要先清除Session protected void btnsubmit_Click(object sender, EventArgs e) { string strQuerySql = BuildQuerySql(); Session["dslist"]=null; DataInit(strQuerySql); }
H_Gragon 2013-05-03
  • 打赏
  • 举报
回复
写个分页存储过程,全搞定了!
md5e 2013-05-03
  • 打赏
  • 举报
回复
引用 8 楼 yaotomo 的回复:
[quote=引用 7 楼 liuchaolin 的回复:] [quote=引用 4 楼 yaotomo 的回复:] [quote=引用 2 楼 liuchaolin 的回复:] void bindData() }
我用下面的代码试了不行,因为SESSION在PAGE_LOAD时写入了值,所以再点查询按钮时就不生成新的DataTable。把Page_Load里的查询去掉后点分页页码数据没有变化。请大神帮我看看哪里写的有问题,感激不尽。

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataInit(BuildQuerySql());
        }
    }

    private void DataInit(string query)
    {

        if (Session["dslist"] == null)
        {
            DataTable dt = oracleHelpler.ExecuteDataTable(query, CommandType.Text, strConn, null);

            Session["dslist"] = dt;

        }

        PagedDataSource pdsList = new PagedDataSource();
        pdsList.AllowPaging = true;
        pdsList.PageSize = AspNetPager1.PageSize;//取控件的分页大小
        pdsList.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;//显示当前页
        pdsList.DataSource = ((DataTable)Session["dslist"]).DefaultView;

        AspNetPager1.RecordCount = ((DataTable)Session["dslist"]).Rows.Count;
        AspNetPager1.PageSize = 10;
        RepeaterList.DataSource = pdsList;
        RepeaterList.DataBind();
    }

    private string BuildQuerySql()
    {
        string query = "select * from tb_workrecord where rownum<1000";
        if (ddlType.Value != "所有类型") query += " and type='" + ddlType.Value + "'";
        if (txtCreator.Value != string.Empty) query += " and creator='" + txtCreator.Value + "'";
        if (txtPerson.Value != string.Empty) query += " and person='" + txtPerson.Value + "'";
        if (txtTaskContent.Value != string.Empty) query += " and taskcontent like '%" + txtTaskContent.Value + "%'";
        if (createbegindate.Value != string.Empty) query += " and createtime>='" + createbegindate.Value + "'";
        if (createenddate.Value != string.Empty) query += " and createtime<='" + createenddate.Value + "'";
        if (completebegindate.Value != string.Empty) query += " and completetime>='" + completebegindate.Value + "'";
        if (completeenddate.Value != string.Empty) query += " and completetime<='" + completeenddate.Value + "'";
        query += " order by id desc";
     
        return query;
    }

    protected void btnsubmit_Click(object sender, EventArgs e)
    {
        string strQuerySql = BuildQuerySql();
        DataInit(strQuerySql);
    }

    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        string strQuerySql = BuildQuerySql();
        DataInit(strQuerySql);
    }
[/quote] 第一次加载把Session设置为null if (!IsPostBack) { Session["dslist"]=null; DataInit(BuildQuerySql()); }
webdiyer 2013-05-03
  • 打赏
  • 举报
回复
如果你用url分页模式,查询时用get提交表单,将查询条件通过url传递即可
yaotomo 2013-05-03
  • 打赏
  • 举报
回复
引用 7 楼 liuchaolin 的回复:
[quote=引用 4 楼 yaotomo 的回复:] [quote=引用 2 楼 liuchaolin 的回复:] void bindData() }
我用下面的代码试了不行,因为SESSION在PAGE_LOAD时写入了值,所以再点查询按钮时就不生成新的DataTable。把Page_Load里的查询去掉后点分页页码数据没有变化。请大神帮我看看哪里写的有问题,感激不尽。

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            DataInit(BuildQuerySql());
        }
    }

    private void DataInit(string query)
    {

        if (Session["dslist"] == null)
        {
            DataTable dt = oracleHelpler.ExecuteDataTable(query, CommandType.Text, strConn, null);

            Session["dslist"] = dt;

        }

        PagedDataSource pdsList = new PagedDataSource();
        pdsList.AllowPaging = true;
        pdsList.PageSize = AspNetPager1.PageSize;//取控件的分页大小
        pdsList.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;//显示当前页
        pdsList.DataSource = ((DataTable)Session["dslist"]).DefaultView;

        AspNetPager1.RecordCount = ((DataTable)Session["dslist"]).Rows.Count;
        AspNetPager1.PageSize = 10;
        RepeaterList.DataSource = pdsList;
        RepeaterList.DataBind();
    }

    private string BuildQuerySql()
    {
        string query = "select * from tb_workrecord where rownum<1000";
        if (ddlType.Value != "所有类型") query += " and type='" + ddlType.Value + "'";
        if (txtCreator.Value != string.Empty) query += " and creator='" + txtCreator.Value + "'";
        if (txtPerson.Value != string.Empty) query += " and person='" + txtPerson.Value + "'";
        if (txtTaskContent.Value != string.Empty) query += " and taskcontent like '%" + txtTaskContent.Value + "%'";
        if (createbegindate.Value != string.Empty) query += " and createtime>='" + createbegindate.Value + "'";
        if (createenddate.Value != string.Empty) query += " and createtime<='" + createenddate.Value + "'";
        if (completebegindate.Value != string.Empty) query += " and completetime>='" + completebegindate.Value + "'";
        if (completeenddate.Value != string.Empty) query += " and completetime<='" + completeenddate.Value + "'";
        query += " order by id desc";
     
        return query;
    }

    protected void btnsubmit_Click(object sender, EventArgs e)
    {
        string strQuerySql = BuildQuerySql();
        DataInit(strQuerySql);
    }

    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
    {
        string strQuerySql = BuildQuerySql();
        DataInit(strQuerySql);
    }
md5e 2013-05-02
  • 打赏
  • 举报
回复
引用 4 楼 yaotomo 的回复:
[quote=引用 2 楼 liuchaolin 的回复:] void bindData() { }
当DataTable数据量太大的时候,用Session不合适吧,有没有其他的办法呢?[/quote] 那就得用数据库的rowsnumber public int GetRowCount(string table, string cond, string[] strparam, object[] strval) { string query = string.Format("Select count(*) From {0} {1}", table, cond); DataSet ds = db.GetDataSet(query, strparam, strval); if (ds != null) { if (ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { return Galsun.Common.Utils.StrToInt(ds.Tables[0].Rows[0][0].ToString(), 0); } } return 0; } public DataSet GetinfoList(string table, int pageindex, int pagesize, string orderFid, string Conditions, string[] strparam, object[] strval) { string query = "Select top {0} * From " + "(Select *,ROW_NUMBER() OVER(ORDER BY {2}) as RowNum From {4} {3}) as newTable " + "Where (RowNum > {1} )"; query = string.Format(query, pagesize, (pageindex - 1) * pagesize, orderFid, Conditions, table); //string query = "Select top {0} * From {1} {2} and id not in(Select top {3} id From {1} {2} Order by {4}) Order by {4}"; //query = string.Format(query, rowcount, table, Conditions, (rowpage - 1) * rowcount + 1, orderFid); return db.GetDataSet(query, strparam, strval); } /// <summary> /// 从数据库中读取数据,刷新页面数据 /// </summary> void bindData() { string cond = " Where id>0 "; //初使化一个SQL语句str if (DNTRequest.GetInt("sclassID", 0) > 0) { cond = cond + " and sid=@classID "; } if (Galsun.Common.DNTRequest.GetInt("spid", 0) > 0) { cond = cond + " and specialID=@specialID "; } if (txt_Search.Text != "") { cond = cond + " and (title like ('%'+ @keyword +'%') or infor like('%'+ @keyword +'%') or Contects like('%'+ @keyword +'%')) "; } string[] strparam = { "@classID", "@keyword","@specialID" }; object[] strval = { DNTRequest.GetInt("sclassID", 0), txt_Search.Text, DNTRequest.GetInt("spid", 0) }; //绑定数据 AspNetPager1.RecordCount = GetRowCount("gl_NewsSystem", cond, strparam, strval); GridView1.DataSource = GetinfoList("gl_NewsSystem", AspNetPager1.CurrentPageIndex, AspNetPager1.PageSize, "isnull(isTop,0) DESC,ORderID DESC,FBDate DESC,id DESC", cond, strparam, strval); GridView1.DataBind(); } /// <summary> /// 页码调控组件的选择事件 /// </summary> protected void AspNetPager1_PageChanged(object sender, EventArgs e) { bindData();//更新页面数据 }
yaotomo 2013-05-02
  • 打赏
  • 举报
回复
引用 3 楼 likevs 的回复:
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e) 不是用这个事件,你应该用这个事件:protected void AspNetPager1_PageChanged(object sender, EventArgs e)
PageChanging是在换页时(还没有完成换页),也就是说可以取消这个操作。其他本质上和PageChanged没有什么区别的。我试过如果只是换成PageChanged事件也不行的。
yaotomo 2013-05-02
  • 打赏
  • 举报
回复
引用 2 楼 liuchaolin 的回复:
void bindData() { }
当DataTable数据量太大的时候,用Session不合适吧,有没有其他的办法呢?
likevs 2013-04-28
  • 打赏
  • 举报
回复
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e) 不是用这个事件,你应该用这个事件:protected void AspNetPager1_PageChanged(object sender, EventArgs e)
md5e 2013-04-28
  • 打赏
  • 举报
回复
void bindData() { if (Session["dslist"] == null) { // string str =""; //if (Request.QueryString["bclassid"] != null && Request.QueryString["sclassid"] != null) //{ // str = " and sclassid=" + Request.QueryString["sclassid"]; //} string str = ""; if (Request.QueryString["bclassid"] != null && Request.QueryString["sclassid"] != null) { str = " and sclassid=" + Request.QueryString["sclassid"]; } if (!IsAdmin()) { //String Legal = Request.QueryString["Legal"]; //if (Legal != "all") //{ // if (!CheckLegal(Legal, Session["MLegal"].ToString())) // Response.Redirect("Legal.aspx"); //} str = str + " and UserName='" + Session["MUserName"] + "'"; //btn_Ok.Enabled = false; } string strqry = ""; if (txt_Search.Text == "") strqry = "select * From V_NewsSystem where id>0 " + str + " order by FBDate desc,id desc"; else strqry = "Select * From V_NewsSystem where title like '%" + txt_Search.Text + "%' " + str + " order by FBDate desc,id desc"; //绑定数据 DataSet dslist = db.GetDataSet(strqry); AspNetPager1.RecordCount = dslist.Tables[0].Rows.Count; Session["dslist"] = dslist; } PagedDataSource pds = new PagedDataSource(); pds.AllowPaging = true; pds.PageSize = AspNetPager1.PageSize; pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1; pds.DataSource = ((DataSet)Session["dslist"]).Tables[0].DefaultView; GridView1.DataSource = pds; GridView1.DataBind(); } protected void AspNetPager1_PageChanged(object sender, EventArgs e) { bindData(); }
md5e 2013-04-28
  • 打赏
  • 举报
回复
用Session 保存 DataTable,然后再分页
1、支持通过Url进行分页AspNetPager除提供默认的类似于DataGrid和GridView的PostBack分页方式外,还支持通过Url进行分页,象大多数asp程序中分页一样, Url分页方式允许用户通过在浏览器地址栏中输入相应的地址即可直接进入指定页面,也可以使搜索引擎搜索到所有分页的页面的内容,因此具有用户友好和搜索引擎友好的优点,关于Url分页与PostBack分页方式的差异,请参考Url与PostBack分页方式的对比。 2、支持Url分页方式下的Url重写(UrlRewrite)功能 Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义分页导航的Url格式,实现Url重写; 3、支持使用用户自定义图片做为导航元素: 您可以使用自定义的图片文件做为分页控件的导航元素,而不仅仅限于显示文字内容。 4、功能强大灵活、使用方便、可定制性强: AspNetPager分页控件的所有导航元素都可以由用户进行单独控制,从6.0版起,AspNetPager支持使用主题(Theme)与皮肤(Skin)统一控件的整体样式,配合asp.net 2.0中的DataSource控件,AspNetPager只需要编写短短几行代码,甚至无需编写任何代码,只需设置几个属性就可以实现分页功能。 5、增强的 Visual Studio 2005、Visual Studio 2008和Visual Studio 2010设计支持 增强的设计支持使控件在设计更加直观,易于使用,开发快捷方便。 6、兼容IE6.0+及FireFox 1.5+等浏览器 7、丰富而完整的控件文档和示例项目: 控件附带的完整的帮助文档及示例项目能够帮助您快速上手,熟悉AspNetPager控件的使用,您还可以通过给作者留言以及论坛提问等方式解决控件使用中遇到问题
分页是Web应用程序中最常用到的功能之一,在ASP.NET中,虽然自带了一个可以分页的DataGrid(asp.net 1.1)和GridView(asp.net 2.0)控件,但其分页功能并不尽如人意,如可定制性差、无法通过Url实现分页功能等,而且有候我们需要对DataList和Repeater甚至自定义数据绑定控件进行分页,手工编写分页代码不但技术难度大、任务繁琐而且代码重用率极低,因此分页已成为许多ASP.NET程序员最头疼的问题之一。 AspNetPager针对ASP.NET分页控件的不足,提出了与众不同的解决asp.net中分页问题的方案,即将分页导航功能与数据显示功能完全独立开来,由用户自己控制数据的获取及显示方式,因此可以被灵活地应用于任何需要实现分页导航功能的地方,如为GridView、DataList以及Repeater等数据绑定控件实现分页、呈现自定义的分页数据以及制作图片浏览程序等,因为AspNetPager控件和数据是独立的,因此要分页的数据可以来自任何数据源,如SQL Server、Oracle、Access、mysql、DB2等数据库以及XML文件、内存数据或缓存中的数据、文件系统等等。 AspNetPager 7.2 版发布 新增属性 PagingButtonLayoutType,可设置分页导航元素(数字页索引、上页、下页、首页和尾页)的布局方式,该属性值是一个PagingButtonLayoutType枚举,通过设置该属性为PagingButtonLayoutType.UnorderedList或PagingButtonLayoutType.Span,允许将这些分页导航元素包含在
  • 标签之间,以便于为这些分页元素应用CSS样式。 新增 PagingButtonClass 与 PagingButtonStyle 属性,可以单独为分页导航按钮(数字页索引、上页、下页、首页和尾页)设置CSS样式; 新增 FirstLastButtonClass 与 FirstLastButtonStyle 属性,可以单独为首页和尾页分页导航按钮设置CSS样式,如果该属性未设置,但指定了PagingButtonClass 与 PagingButtonStyle 属性的值,则首页和尾页按钮样式将使用 PagingButtonClass 与 PagingButtonStyle 属性中指定的样式; 新增 NextPrevButtonClass 与 NextPrevButtonStyle 属性,可以单独为上页和下页分页导航按钮设置CSS样式,如果该属性未设置,但指定了PagingButtonClass 与 PagingButtonStyle 属性的值,则上页和下页按钮样式将使用 PagingButtonClass 与 PagingButtonStyle 属性中指定的样式; 新增 MoreButtonClass 与 MoreButtonStyle 属性,可以单独为更多页(...)分页导航按钮设置CSS样式,如果该属性未设置,但指定了PagingButtonClass 与 PagingButtonStyle 属性的值,则上页和下页按钮样式将使用 PagingButtonClass 与 PagingButtonStyle 属性中指定的样式; 新增属性 ShowMoreButtons ,可以指定是否显示更多页按钮; 新增属性 CurrentPageButtonPosition ,可设置在每次分页后,当前页数字索引在所有的数字页索引中的显示位置,该属性值是一个PagingButtonPosition枚举,对应的值及说明如下: Beginning:当前页数字索引总是显示在所有数字页索引的最前面; End:当前页数字索引总是显示在所有数字页索引的最后面; Center:当前页数字索引总是显示在所有数字页索引的中间; Fixed:默认值,固定不变; 控件的CssClass属性仅应用于控件的窗口元素(div),将不再应用于下属分页元素; 废止属性CenterCurrentPageButton,可以用CurrentPageButtonPosition属性取代; 修改CurrentPageIndexn属性,允许在程序中任何地方以编程方式设置CurrentPageIndex的值来动态指定当前页,直接设置该属性的值将同引发PageChanging和PageChanged 事件,实现和点击分页按钮一样的分页功能; 修正了7.1版中设置SubmitButtonImageUrl属性后,Postback回发分页方式情况下点击数字页索引按钮不引发分页事件的bug; 修正了使用Url分页,如果页面上没有服务器端form控件无法注册客户端脚本的bug,从7.2版起如果使用Url分页并且ShowPageIndexBox属性没有设置为NeverAspNetPager控件必须放在
    标记之间,若使用Url分页并且ShowPageIndexBox为Never,页面上可以不使用服务器端form控件。 AspNetPager的主要功能: 1、支持通过Url进行分页AspNetPager除提供默认的类似于DataGrid和GridView的PostBack分页方式外,还支持通过Url进行分页,象大多数asp程序中分页一样, Url分页方式允许用户通过在浏览器地址栏中输入相应的地址即可直接进入指定页面,也可以使搜索引擎搜索到所有分页的页面的内容,因此具有用户友好和搜索引擎友好的优点,关于Url分页与PostBack分页方式的差异,请参考Url与PostBack分页方式的对比。 2、支持Url分页方式下的Url重写(UrlRewrite)功能 Url重写技术可以使显示给用户的Url不同于实际的Url,Url重写技术被广泛应用于搜索引擎优化(SEO)、网站重组后重定向页面路径以及提供用户友好的Url等方面, AspNetPager支持Url重写技术使您可以自定义分页导航的Url格式,实现Url重写; 3、支持使用用户自定义图片做为导航元素: 您可以使用自定义的图片文件做为分页控件的导航元素,而不仅仅限于显示文字内容。 4、功能强大灵活、使用方便、可定制性强: AspNetPager分页控件的所有导航元素都可以由用户进行单独控制,从6.0版起,AspNetPager支持使用主题(Theme)与皮肤(Skin)统一控件的整体样式,配合asp.net 2.0中的DataSource控件,AspNetPager只需要编写短短几行代码,甚至无需编写任何代码,只需设置几个属性就可以实现分页功能。 5、增强的 Visual Studio 2005/2008设计支持 增强的设计支持使控件在设计更加直观,易于使用,开发快捷方便。 6、兼容IE6.0+及FireFox 1.5+等浏览器 7、丰富而完整的控件文档和示例项目: 控件附带的完整的帮助文档及示例项目能够帮助您快速上手,熟悉AspNetPager控件的使用,您还可以通过给作者留言以及论坛提问等方式解决控件使用中遇到问题AspNetPager72Src下为AspNetPager组件源码

    62,243

    社区成员

    发帖
    与我相关
    我的任务
    社区描述
    .NET技术交流专区
    javascript云原生 企业社区
    社区管理员
    • ASP.NET
    • .Net开发者社区
    • R小R
    加入社区
    • 近7日
    • 近30日
    • 至今
    社区公告

    .NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

    希望和大家一起共同营造一个活跃、友好的社区氛围。

    试试用AI创作助手写篇文章吧