我记得在MSDN上面有这方面的例子,把DateGrid的每行分成了好几行。你可以看一看,不过好像不能直接进行绑定,还得进行一下其他的处理。

解决方案 »

  1.   

    难道要把对象都再拆成DataSet吗?
      

  2.   

    谁能帮我解决这个问题呢?
    可惜csdn给的最高分就100,要不我再加分。
      

  3.   

    try something like<script language="C#" runat="server">
    class User
    {
      string m_sName;
      public ArrayList friends = new ArrayList();  public string Name
      {
    get {return m_sName;}
    set {m_sName = value;}
      }  public User(string sName)
      {
    Name = sName;
      }
    }class Friend
    {
      string m_sName;
      string m_sNickName;
      public ArrayList friends = new ArrayList();
      public string Name
      {
    get {return m_sName;}
    set {m_sName = value;}
      }
      public string NickName
      {
    get {return m_sNickName;}
    set {m_sNickName = value;}
      }  public Friend(string sName, string sNickName)
      {
    Name = sName;
    NickName = sNickName;
      }
    }void Page_Load(Object sender, EventArgs e)
    {
      ArrayList a = new ArrayList();
      User u;
      Friend f,f2;  u = new User("John");
      f = new Friend("Sam", "The Dog");
      
      f2 = new Friend("Tim", "Puppy");
      f.friends.Add(f2);  f2 = new Friend("Bill", "Hedge");
      f.friends.Add(f2);  u.friends.Add(f);
      f = new Friend("David", "The Cat");
      
      f2 = new Friend("Tom", "Wacko");
      f.friends.Add(f2);  f2 = new Friend("Larry", "Snake");
      f.friends.Add(f2);  f2 = new Friend("Adam", "Dude");
      f.friends.Add(f2);  u.friends.Add(f);  a.Add(u);  //add more users here  DataGrid1.DataSource = a;
      DataGrid1.DataBind();}protected void OnItemDataBound(object sender, DataGridItemEventArgs e)
    {
      if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
      {
    ArrayList a;
    if (e.Item.DataItem is User)
    {
    a = ((User)e.Item.DataItem).friends;
    }
    else
    {
    a = ((Friend)e.Item.DataItem).friends;
    }

    if (a.Count > 0)
    {

    DataGrid dg = new DataGrid(); dg.ItemDataBound += new  DataGridItemEventHandler (OnItemDataBound);
    dg.DataSource = a;
    dg.DataBind(); TableCell tc = new TableCell();
    tc.Controls.Add(dg);
    e.Item.Cells.Add(tc);
    }   }
    }
    </script>
    <asp:datagrid id="DataGrid1" runat="server" OnItemDataBound="OnItemDataBound"/>
      

  4.   

    给你一个不同的绑定风格datagrid_bgjj.TableStyles.Clear() ;
    string dg_cond;
    DataSet dg_ds = new DataSet();
    dg_cond = "select * from bgjj_table where ssbm =" + lv_nodenum ;
    lv_bgjj.Visible = false ;
    SqlDataAdapter dg_sqldataAdapter = new SqlDataAdapter(dg_cond ,sqlConnection1);
    try
    {
    sqlConnection1.Open();
    dg_sqldataAdapter.Fill(dg_ds,"bgjj");
    }
    finally
    {
    sqlConnection1.Close();
    }
    //绑定数据源
    datagrid_bgjj.DataSource = dg_ds.Tables["bgjj"].DefaultView;
    //设置显示风格
    DataGridTableStyle dgts = new DataGridTableStyle();
    dgts.MappingName = "bgjj" ;
    dgts.ReadOnly  = true ;
    datagrid_bgjj.TableStyles.Add(dgts);
      

  5.   

    非常感谢各位! saucer(思归)这个名字很耳熟,好像我的几个问题都是你给的提示哦!:)
    我马上去试试!还有一个问题,是关于OOP的,也请帮忙看看好吗?
    http://expert.csdn.net/Expert/topic/1191/1191982.xml