试一下datagrid嵌套,不是在页面而是在后台动态加。
解决方案 »
- 下面的代码为什么总报脚本错误?
- session失效后,主页中框架里面的页面导航成登录页面了,怎么让整个页面导航成登录页面
- vs2008中利用ODT连接Oracle10g存储过程生成TableAdpater报异常
- 常用的快递公司快递单号查询功能怎么做
- 页面跳转,IE回退的问题
- 怎样根据代码控制reportviewer中chart(图表)的图例
- 页面时而刷新,时而不刷的问题
- 关于ASP.NET控件的保值问题,急,在线等
- 固定资产管理系统中的这个问题如何用asp.net来实现?
- .net mvc session过期问题
- javascript连接
- 100分:asp.net面试要注意哪些事项?一般会考什么?
试一下datagrid嵌套,不是在页面而是在后台动态加。
---------------
/?
<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()来查找子模板并赋数据源.上面的思路其实可以理解为两个表间的父子关系映射到嵌套模板上去.