A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 聂广强 中级黑马   /  2013-7-10 14:17  /  1998 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 聂广强 于 2013-7-25 15:00 编辑

只要能实现效果即可 连接数据库用 这是我在做机试的时候遇到的一个难题

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

6 个回复

倒序浏览
//在数据访问的时候就分页
数据访问的分页排序方法

int pageId:当前页,
int pageSize每页数据数,
string addWhere查询条件,
string taxisName要排序的列名,
string descOrAsc:2种排序参数(desc/asc),
string tableName:数据表名

public static DataSet getDataSet(int pageId,int pageSize, string addWhere, string taxisName, string descOrAsc,string tableName)
        {
           string sql= "select * from (select  ROW_NUMBER() OVER(ORDER BY " + taxisName + " " + descOrAsc + ") as pageId,*  from "+tableName+") as tablename ";
            sql += " where pageId>=" + (pageSize * (pageId - 1) + 1).ToString() + " and pageId<=" + (pageSize * pageId).ToString() + " " + addWhere;
            return DbHelperSQL.Query(sql);
        }//该方法sql语句有sql注入的漏洞,在用户输入条件上判断用户输入是否合法,防御sql注入 到baidu还是有很多资料的
参数都有了,应该会做了吧
要任何的分页和每页数据数,改变一下参数的值就可以了

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
好像是黑八的老帖子了吧!
Repater一般不会分页,他只是负责在首页显示最热门的信息,如果要查看更多的信息,一般会在模块的右上角有“更多”链接,一般分页使用ListView或者GridView控件,其中内置了分页控件,当然也可以自己改写高效分页代码。
回复 使用道具 举报
yangchao313 发表于 2013-7-10 14:47
//在数据访问的时候就分页
数据访问的分页排序方法

在百度里面也看了好多的例子 但是都没有自己想要的那种效果 也可以说是 看则他们的例子感觉做不出来 内部的方法如何调用这都是不得而知 的
回复 使用道具 举报
Repeater控件的分页:因为Repeater控件 没有与分页相关的属性,因此要实现 分页必须使用其它方式例如 :pagedatasource
数据的绑定代码:  public void dlBind()
    {
        int curpage = Convert.ToInt32(this.labPage.Text);
        PagedDataSource ps = new PagedDataSource();
        sqlcon = new SqlConnection(strCon);
        sqlcon.Open();
        string sqlstr = "select a.*,b.* from tb_Card as a join tb_Module as b on a.ModuleID=b.ModuleID";
        SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlcon);
        DataSet ds = new DataSet();
        MyAdapter.Fill(ds, "tb_Card");
        ps.DataSource = ds.Tables["tb_Card"].DefaultView;
        ps.AllowPaging = true; //是º?否¤?可¨¦以°?分¤?页°3
        ps.PageSize = 2; //显?示º?的Ì?数ºy量¢?
        ps.CurrentPageIndex = curpage - 1; //取¨?得Ì?当Ì¡À前¡ã页°3的Ì?页°3码?
        this.lnkbtnUp.Enabled = true;
        this.lnkbtnNext.Enabled = true;
        this.lnkbtnBack.Enabled = true;
        this.lnkbtnOne.Enabled = true;
        if (curpage == 1)
        {
            this.lnkbtnOne.Enabled = false;//不?显?示º?第̨²一°?页°3按ã¡ä钮£¤
            this.lnkbtnUp.Enabled = false;//不?显?示º?上¦?一°?页°3按ã¡ä钮£¤
        }
        if (curpage == ps.PageCount)
        {
            this.lnkbtnNext.Enabled = false;//不?显?示º?下?一°?页°3
            this.lnkbtnBack.Enabled = false;//不?显?示º?最Á?后¨®一°?页°3
        }
        this.labBackPage.Text = Convert.ToString(ps.PageCount);
        this.Repeater1.DataSource = ps;
        this.Repeater1.DataBind();
        sqlcon.Close();
}

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
分页建议使用 ListView
回复 使用道具 举报
baoshouying 发表于 2013-7-10 15:22
分页建议使用 ListView

这个机试题就是要用repeater进行分页
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马