是做一个repeater分页
在网上找了一段代码不是很明白
/// 生成数据源(一个Datatable)
  /// </summary>
  /// <returns></returns>
public DataTable CreateDataSource()
{
  DataTable dt; 
  DataRow dr;
  dt=new DataTable();
 //添加列
        dt.Columns.Add(new DataColumn("IntegerValue", System.Type.GetType("System.Int32")));
        dt.Columns.Add(new DataColumn("StringValue", System.Type.GetType("System.String")));
        dt.Columns.Add(new DataColumn("DateTimeValue", System.Type.GetType("System.DateTime")));
        dt.Columns.Add(new DataColumn("BoolValue", System.Type.GetType("System.Boolean")));
 //填充数据
 for( int i=0;i<50;i++)
 {
  dr = dt.NewRow();
  dr[0] = i;
  dr[1] = "Item " + i.ToString();
  dr[2] = DateTime.Now.ToShortTimeString();
  if(i%2!=0)
  {
   dr[3] = true;
  }
  else
  {
   dr[3] = false;
  }
  dt.Rows.Add(dr);
 }
 return dt;
}我已经取出DataTble的值了,DataTable dt = issued.GetPromulgated();所以那个添加列是不是可以去掉,那我这个for循环怎么写,
就是对这个填充数据不是很白

解决方案 »

  1.   

    这样的操作太浪费资源了。
    建立一个新的DT 然后遍历分别将2个dt的内容加进去!!
      

  2.   

    这段 for 循环就是 填充 50条数据给 定义的表.行数是2的倍数第四列就是 true,不是等于false.
      

  3.   

    这段 for 循环就是 填充数据都是假数据,做例子展示的, 没实际意义。你从数据库取出来 填充才是你需要的.
      

  4.   

    这个数据填充怎么填充?能给点相关代码吗?DataTable dt = issued.GetPromulgated();这个数据我已经取出来了,是查询出的所有数据放
      

  5.   


    for( int i=0;i<50;i++)
     {//新建一行ROW
      dr = dt.NewRow();
      //第一列的值
      dr[0] = i;
    //第二列的值 是由Item+i组成的 类似Item1、Item2....
      dr[1] = "Item " + i.ToString();
    //第三列的值 是由当前时间的短日期格式组成
      dr[2] = DateTime.Now.ToShortTimeString();
     //如果是奇数列
      if(i%2!=0)
      {//第四列的值为真
       dr[3] = true;
      }
      else
      {//否则为假
       dr[3] = false;
      }
    //把这一列加到dt中
      dt.Rows.Add(dr);
     }
    //循环结束 返回
     return dt;[/color]}
    //根据循环次数 重复添加最后组成一个50条数据的dt
      

  6.   

    我把源代码都贴出来吧,大家帮忙看看protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    PagedDataSource Pgds = new PagedDataSource();
                    Pgds.DataSource = CreateDataSource().DefaultView;
                    Pgds.AllowPaging = true;
                    Pgds.PageSize = 6;
                    (Repeater1.FindControl("lblTotalPage") as Label).Text = Pgds.PageCount.ToString();
                    int CurrentPage;
                    if (Request.QueryString["Page"] != null)
                    {
                        CurrentPage = Convert.ToInt32(Request.QueryString["Page"]);
                    }
                    else
                    {
                        CurrentPage = 1;
                    }
                    Pgds.CurrentPageIndex = CurrentPage - 1;
                    (Repeater1.FindControl("lblCurrentPage") as Label).Text = CurrentPage.ToString();
                    if (!Pgds.IsFirstPage)
                    {
                        //Request.CurrentExecutionFilePath为当前请求虚拟路径
                        (Repeater1.FindControl("lnkPrev") as HyperLink).NavigateUrl = Request.CurrentExecutionFilePath + 
                            "?Page=" + Convert.ToString(CurrentPage - 1);
                    }
                    if (!Pgds.IsLastPage)
                    {
                        //Request.CurrentExecutionFilePath为当前请求虚拟路径
                        (Repeater1.FindControl("lnkNext") as HyperLink).NavigateUrl = Request.CurrentExecutionFilePath + 
                            "?Page=" + Convert.ToString(CurrentPage + 1);
                    }
                    //数据绑定
                    //DataTable sql = issued.GetPromulgated();
                    Repeater1.DataSource = Pgds;
                    Repeater1.DataBind();
                }
            }
            //分页控制
            public DataTable CreateDataSource()
            {
                DataTable dt;
                DataRow dr;
                dt = new DataTable();
                dt = issued.GetPromulgated();
                //添加列
                //dt.Columns.Add(new DataColumn("IntegerValue", System.Type.GetType("System.Int32")));
                //dt.Columns.Add(new DataColumn("StringValue", System.Type.GetType("System.String")));
                //dt.Columns.Add(new DataColumn("DateTimeValue", System.Type.GetType("System.DateTime")));
                //dt.Columns.Add(new DataColumn("BoolValue", System.Type.GetType("System.Boolean")));
                //填充数据
                for (int i = 0; i < 50; i++)
                {
                    dr = dt.NewRow();
                    dr[0] = i;
                    dr[1] = "Item " + i.ToString();
                    dr[2] = DateTime.Now.ToShortTimeString();
                    if (i % 2 != 0)
                    {
                        dr[3] = true;
                    }
                    else
                    {
                        dr[3] = false;
                    }
                    dt.Rows.Add(dr);
                }
                return dt;
            }
      

  7.   

    你想在 Repeater1 实现分页吗,你直接说不就好了 
      

  8.   

    如果 数据量 不大的话  用 sql 里面的 row_number() over() 函数就可以实现分页了。一句SQL 就可以搞点了,如果没用过的话 去google 查下这个 用法。