试一下datagrid嵌套,不是在页面而是在后台动态加。

解决方案 »

  1.   

    to:zbjg(凿壁借光) 
    试一下datagrid嵌套,不是在页面而是在后台动态加。
    ---------------
    /?
      

  2.   

    对datagrid的relation不太熟;不知这个可以实现不的
      

  3.   

    嵌套 <asp:Repeater ID="parent" Runat="server">
                     <ItemTemplate>
                        编号:<%# DataBinder.Eval(Container.DataItem,"id")%>
                        留言:<%# DataBinder.Eval(Container.DataItem,"content")%>
                        <br>
                        <asp:Repeater ID="child" Runat="server"><!--此处亦可使用DataList-->
                           <ItemTemplate>
                               回复:<%# DataBinder.Eval(Container.DataItem,"reply")%><br>
                             </ItemTemplate>
                        </asp:Repeater>
                    </ItemTemplate>
                </asp:Repeater>在后置代码Load中写入(假设父模板为parent,子模板为child)OleDbConnection con = new OleDbConnection(@"../gb.mdb");
                OleDbDataAdapter da = new OleDbDataAdapter("select * from guestbook",con);
                OleDbDataAdapter da2 = new OleDbDataAdapter("select * from reply",con);            DataSet ds = new DataSet();
                da.Fill(ds,"guestbook");
                da2.Fill(ds,"reply");            ds.Relations.Add("relation",ds.Tables[0].Columns["id"],ds.Tables[1].Columns["id"]);            parent.DataSource = ds.Tables[0].DefaultView;
                parent.DataBind();            con.Close();主要是为两个表之间添加关系,当前如果一个表就什么都不用做了.接着写Repeater的 ItemDataBound 事件,这个很关键.DataRowView dv = e.Item.DataItem as DataRowView;            child = e.Item.FindControl("child") as Repeater;
                child.DataSource  = dv.CreateChildView("relation");
                child.DataBind();通过FindControl()来查找子模板并赋数据源.上面的思路其实可以理解为两个表间的父子关系映射到嵌套模板上去.
      

  4.   

    http://dotnet.aspx.cc/article/149e5dd7-3b32-461e-acc6-51d1652e6746/read.aspx