我的页面上有两个datalist 外面的datalist的数据源不是从数据库提取出来的  里面的那个datalist的数据源要根据外面的那个时间从数据库里读取  大家帮忙看看这个怎么弄  protected void InitCalendar()
    {
        DataSet mDataSet = new DataSet();
       
        DataTable mDataTable = new DataTable();
        mDataSet.Tables.Add(mDataTable);
        mDataTable.Columns.Add("TIME");                for (int i = 0; i < 24; i++)
        {
            TimeSpan mTimeSpan = new TimeSpan(-i, 0, 0);
            DataRow Row = mDataTable.Rows.Add();
            DateTime nDateTime = DateTime.Now;
            nDateTime = nDateTime.Subtract(mTimeSpan);
            mDataTable.Rows[i][0] = nDateTime.ToString("HH:mm");            ((DataList)dlCalendarList.FindControl("dlCalendar")).DataSource = new BDBOA.BLL.tbl_Calendar().GetModelList("", nDateTime);
            ((DataList)dlCalendarList.FindControl("dlCalendar")).DataBind();
        }   
      
        dlCalendarList.DataSource = mDataSet;
        dlCalendarList.DataBind();
    }
这个是我写的方法 好像第二个datalist用这样的方法找不到 但是我不知道怎么写了

解决方案 »

  1.   

    DataRow dr = mDataTable .NewRow();
    dr["列名"] = "值";mDataTable .Rows.Add(dr);
      

  2.   

    嵌套的DataList的绑定可以在第一个DataList的ItemDataBound事件里做
      

  3.   

    这个我知道 但是我绑定第二个datalist的方法必须把外面一层datalist里绑定的时间传进去 
    如果写在ItemDataBound里的话 我的时间要怎么传过来呢?
      

  4.   

    不好意思 我不知道这是针对哪一块改的  我那个时间要绑定的是第一列 
    而且我现在要知道的是怎么在那个方法里找到我的第二个datalist
      

  5.   

    注明一下   外面那个datalist是  dlCalendarList
              里面那个是 dlCalendar
      

  6.   

    在第一个DataList的ItemTemplate中放一Label用于显示时间
    在第一个DataList的ItemDataBound中用FindControl方法找到控件并获取Text属性的值,然后绑定第二个DataList
      

  7.   


    大侠 现在换成label找不到了  还是报同样的错 "未将对象引用到设置到对象的实例"
      

  8.   

    在第一个DataList的ItemDataBound事件里,if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        // 如果绑定到主Repeater的是DataTable或DataView,对应到每一行,就是DataRowView(绑定到每一行的数据源是DataRowView)
        DataRowView data = e.Item.DataItem as DataRowView;
       // 要取什么数据都可以,data["字段名"]    // 这里根据主Repeater的数据,取出子Repeater的数据源,绑定到子Repeater就可以了
    repChild.DataSource = 子数据源;
    repChild.DataBind();
    }
      

  9.   

    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        // 如果绑定到主Repeater的是DataTable或DataView,对应到每一行,就是DataRowView(绑定到每一行的数据源是DataRowView)
        DataRowView data = e.Item.DataItem as DataRowView;
       // 要取什么数据都可以,data["字段名"]    // 这里根据主Repeater的数据,取出子Repeater的数据源,绑定到子Repeater就可以了
    Repeater repChild = e.Item.FindControl("repChild") as Repeater;
    repChild.DataSource = 子数据源;
    repChild.DataBind();
    }
      

  10.   

    参考:
    http://blog.csdn.net/insus/archive/2008/09/02/2865244.aspx
      

  11.   

    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                int ID = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex].ToString());
                DataSet ds;//
                DataList DataList2= (DataList)e.Item.FindControl("DataList2");
                DataList1.DataSource = ds;
                DataList1.DataBind();
            }
        }
     ds.Relations绑定
      

  12.   

    几个月没上 csdn 了 一上了看到我还有没结的帖子 不好意思啊 拖了这么久