这个帖50分,同样的问题http://community.csdn.net/Expert/topic/5460/5460613.xml?temp=.3070642
有100分,分数还没送出去.下面具体说说需求:
sql数据库:a表,字段name(中奖时间),u1(手机号码1),u2(手机号码2),u3(手机号码3)
          b表,字段name(会员姓名),tel(会员手机号码)用datalist(其他控件也行)分页显示以下的效果:===============================================================10月1日抽奖(对应中奖时间字段)       10月2日抽奖         10月3日抽奖     
张三(会员姓名) 135......(u1)        张三   135......     张三   135...... 
李四           133......(u2)        李四   133......     李四   133......
王五           138......(u3)        王五   138......     王五   138......
10月5日抽奖                         10月4日抽奖         10月6日抽奖     
张三           135......(u1)        张三   135......     张三   135...... 
李四           133......(u2)        李四   133......     李四   133......
王五           138......(u3)        王五   138......     王五   138......
上页  下页===================================================================希望大家帮帮忙啊菜鸟在此谢过~~~

解决方案 »

  1.   

    没听过Datalist还能分成一组一组的,这样光用一个Datalist好像行不通,用其它的方法实现吧!
      

  2.   

    不能一天使用一个Datalist来显示???
      

  3.   

    设置RepeatColumns属性的值3试试
      

  4.   

    RepeatColumns属性的值3,这个我知道,关键是具体内容怎么显示出?用asp写这个是很简单的,.net我初学,对控件,属性都不熟悉,希望高手能帮忙,真的很急啊
      

  5.   

    很好做呀~
    datalist里面的模版列打好一个table:10月6日抽奖     
    李四   133......
    李四   133......
    李四   133......设置RepeatColumns属性的值3。
    同时datalist中 这样绑定Text='<%# Eval("Name") %>'>
    分页代码:
          private void fill()
          {
            //这里设置一个隐藏的Label,用与储存当前的页索引
            int cup = Convert.ToInt32(pagelbl.Text);        PagedDataSource ps = new PagedDataSource();//NEW一个分页数据源        string sql = "你的SQL语句";        Cls_DBCtl cls1 = new Cls_DBCtl();//数据库类
            ps.DataSource = cls1.ReturnDataSet(sql).Tables[0].DefaultView;        ps.AllowPaging = true;//允许分页
            ps.PageSize = 6;//设置页的数量
            ps.CurrentPageIndex = cup - 1;        PageCount = ps.PageCount;//存储总页数
            Label8.Text = ps.PageCount.ToString();        //下面主要是控制上下翻页按纽是否起用
            pageup.Enabled = true;
            pagedown.Enabled = true;
            if (ps.IsFirstPage)
            {//如果是最前页,上页按纽不可用
                pageup.Enabled = false;
            }
            if (ps.IsLastPage)
            {//如果是最后页,下页按纽不可用
                pagedown.Enabled = false;
            }        //绑定给DataList了
            DataList1.DataSource = ps;
            DataList1.DataKeyField = "Id";
            DataList1.DataBind();
        }    
        protected void pageup_Click(object sender, EventArgs e)
        {
            //上页事件
            pagelbl.Text = Convert.ToString(Convert.ToInt32(pagelbl.Text) - 1);
            fill();
        }
        protected void pagedown_Click(object sender, EventArgs e)
        {
            //下页事件
            pagelbl.Text = Convert.ToString(Convert.ToInt32(pagelbl.Text) + 1);
            fill();
        }做人要厚道。楼主早点给分。
      

  6.   

    补充下,NET里面是一个table你打好了了,以table循环就好了,更加方便和简单。
      

  7.   

    谢谢,xiang_li5257(安静跳舞的木偶) ,我测试下,好的话立刻给分
      

  8.   

    感觉还是没解决,这个问题的关键是张三   135......(u1)        
                                   李四   133......(u2)    的显示   
                                   王五   138......(u3)     你的方法无法做到这样的效果啊
      

  9.   

    结帐,给写的最多的人分吧
    尽管没有解决我的问题~现在的思路是修改表解构,然后用datalist嵌套做
    祝自己好运吧
      

  10.   

    ??怎么不能做到呢?你的sql应该是一个联合查询的语句,里面的数据集就包括了这些数据,填充到分页数据源,肯定可以的~
      

  11.   

    private void databind()
        {
            Marketlogic ml = new Marketlogic();
            DataSet ds;
            ml.get_etproduct(out ds);
            this.StaffList.DataSource = ds;
            this.StaffList.DataBind();
            lbl_curpage.Text = (StaffList.CurrentPageIndex + 1).ToString();
            lbl_totalrecord.Text = StaffList.PageCount.ToString();    }    protected void btn_first_Click(object sender, System.Web.UI.ImageClickEventArgs e)
        {
            //获得LinkButton的参数值
            String arg = ((ImageButton)sender).CommandArgument;
            switch (arg)
            {
                case ("next"):
                    if (StaffList.CurrentPageIndex < (StaffList.PageCount - 1))
                        StaffList.CurrentPageIndex++;
                    break;
                case ("pre"):
                    if (StaffList.CurrentPageIndex > 0)
                        StaffList.CurrentPageIndex--;
                    break;
                case ("first"):
                    StaffList.CurrentPageIndex = 0;
                    break;
                case ("last"):
                    StaffList.CurrentPageIndex = (StaffList.PageCount - 1);
                    break;
                default:
                    //本页值
                    StaffList.CurrentPageIndex = Convert.ToInt32(arg);
                    break;
            }
            databind();
        }