this article might be helpful for you:
Building a Master/Detail DataGrid
http://www.dotnetjunkies.com/tutorials.aspx?tutorialid=135
Building a Master/Detail DataGrid
http://www.dotnetjunkies.com/tutorials.aspx?tutorialid=135
解决方案 »
- asp.net 查找并替换字符串~~~~~
- 请教一个不复杂,但比较繁琐的问题
- 在.net studio 中编辑的.aspx网页无法显示的问题!急!!!100分相送!
- DataSet.getxml和writexml生成的xml中的时间问题
- (求解)asp.net中不能映射数据库路径!!!
- 请问关于gridview中删除的问题
- web控件Render事件重写问题
- 敬求,从查询结果到内存表的程序。
- 请教 Request.querystring 和 Request.form有什么区别?
- 高手快进~出大事了
- .net正式版的例子在哪个目录下
- 一个简单的问题。。。如何在Web Form的一个button事件中调用另一个aspx文件?
不过,我想可以通过下面的方法尝试:
把ITEMTEMPLATE的内容设置为一个PANEL,ID为PNL,然后在方法中对PNL动态添加对象,应该是可行的。
<asp:datalist id="DataList1" style="Z-INDEX: 104; LEFT: 6px; POSITION: absolute; TOP: 11px" runat="server" Height="217px" Width="275px">
<ItemTemplate>
<asp:DataList id="DataList2" runat="server" Height="62" Width="191">
<HeaderTemplate>
_________________________________
<br>
<font size="3"> <%#head%>
</font>
<br>
_________________________________
</HeaderTemplate>
<ItemTemplate>
<font size="2">
<%#DataBinder.Eval(Container,"DataItem.子模块")%>
<asp:CheckBoxList Font-Size="X-Small" id="CheckBoxList1" runat="server" DataSource='<%#getarr(DataBinder.Eval(Container,"DataItem.操作","{0}"),DataBinder.Eval(Container,"DataItem.子模块","{0}"),DataBinder.Eval(Container,"DataItem.操作编码","{0}"))%>' RepeatDirection="Horizontal" DataTextField="text" DataValueField="value">
</asp:CheckBoxList>
</font>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:datalist>
</DIV>
...
public string head;
....Page_Load()
{
...
DataSet ds=new DataSet();
ds.ReadXml(Server.MapPath("module.xml"));
DataList1.DataSource=new string [ds.Tables.Count];
DataList1.DataBind();
for (int i=0;i<DataList1.Items.Count;i++)
{
((DataList)DataList1.Items[i].FindControl("DataList2")).DataSource=ds.Tables[i];
head=ds.Tables[i].TableName;
((DataList)DataList1.Items[i].FindControl("DataList2")).DataBind();
}
读取所有数据(TABLE)到DS中,
建立DATATABLE 变量DT,设置其数据是DS中的表名:
在DATALIST0中设置一个LABEL1,并绑定到DT的表名字段
绑定DATALIST0
通过下面的程序实现DATAGRID0数据的绑定:
string tablename;
DataGrid dg;
for(int i=0;i<Datalist0.Items.Length;i++)
{
tablename=((label)Datalist0.Items[i].FindControl("Label1")).Text.ToString();
dg=(DataGrid)Datalist0.Items[i].FindControl("Datagrid0");
dg.DataSource=DS.Tables[tablename].DefaultView;
dg.DataBind();
}
ds.Tables.Count决定了DataList1的Item的个数
也就是产生的DataList2的个数
然后根据DataList1.Items.Count做循环
绑定每个DataList2