我有一个表结构是
id name pid
1 硬件 0
2 主板 1
3 CPU 1
4 软件 0
5 杀毒 4
6 Word 4请问如何用datagrid 中嵌套 datagrid显示如下效果?硬件
主板
CPU
软件
杀毒
Word
id name pid
1 硬件 0
2 主板 1
3 CPU 1
4 软件 0
5 杀毒 4
6 Word 4请问如何用datagrid 中嵌套 datagrid显示如下效果?硬件
主板
CPU
软件
杀毒
Word
解决方案 »
- asp.net连接oracle数据库出现乱码问题(100分坐等解答)
- 关于datatable的问题,我想替换datatable中指定的数据,比如一个databable中所有的A换成B
- 怎么连接迅雷下载 ?前辈们
- 图片操作(生成小图类)
- ASP.NET 做类似QQ登录时的小键盘.....分不够再加
- 模仿DW的代码片断VS2003插件
- |G| InputGrid.DataXml = _dataxml; 数据大的时候会很慢!!!
- sql语句,插入多条记录
- 做了个CHM帮助文档,能FLASH装进去吗?
- 怎么样在dataset里的一张表里作筛选,将结果存进另一张表里,或者与一个datagrid绑定,紧急求助,真的是很急
- 我的DIV被用户控件ascx挡住了,完全显示不了DIV了,请问怎么解决???
- datagrid嵌套怎么再嵌套的datagrid里实现编辑功能呢
{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList dsSmallclass = (DataList)e.Item.FindControl("dsSmallClass");
DataRow[] dr = dtSmalllist.Select("enable=1 and BigClass_ID="+this.dsBigclass.DataKeys[e.Item.ItemIndex].ToString());
DataTable dtNewlist = dtSmalllist.Clone();
for(int i = 0 ; i < dr.Length ; i ++)
{
dtNewlist.ImportRow(dr[i]);
}
dsSmallclass.DataSource = dtNewlist;
dsSmallclass.DataBind();
}
}
aspx 代码:
<asp:datalist id="DataList1" runat="server" CellSpacing="2" RepeatColumns="3" Width="80%">
<ItemTemplate>
<table width="100%" border="0" align="center">
<tr>
<td><a href="#"><strong><font color="#0033cc"><a href='default2.aspx?id=<%# DataBinder.Eval(Container.DataItem, "id") %>'><%# DataBinder.Eval(Container.DataItem, "type_name") %></a></font></strong></a></td>
<td> </td>
</tr>
<tr>
<td colspan="2" align="center"><!--子DAALIST-->
<asp:DataList id="list2" runat="server" Width="100%" CellSpacing="2" RepeatDirection="Horizontal">
<ItemTemplate>
<table width="100%" cellspacing="0" cellpadding="1" style="FONT-SIZE: 13px">
<tr>
<td>
<a href="#"><font color="#0033cc"><a href='default1.aspx?id=<%# DataBinder.Eval(Container.DataItem, "id") %>'>
<%# DataBinder.Eval(Container.DataItem, "type_name")%>
</a></font></a>
</td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
</td>
</tr>
</table>
</ItemTemplate>
</asp:datalist>后台代码:
private void DataList1_ItemDataBound(object sender, System.Web.UI.WebControls.DataListItemEventArgs e)
{
string sqlSel,str;
int i,i2,i9;
DataList list2 = new DataList();
list2 = (DataList)e.Item.FindControl("list2");
i9=this.Hidden1.Value.Length;
string finishid = ((DataRowView)e.Item.DataItem).Row["ID"].ToString();//根据父list绑定子list,得到父list得该行的id
// sqlSel = "select top 2* from tab_product_type2 where parent_code = '"+finishid+"' order by type_order asc";
if (this.Hidden3.Value !="2")//对子类的绑定进行处理
{
if ((this.Hidden1.Value =="") || (i9<3))
{
sqlSel = "select top 2* from tab_product_type2 where parent_code = '"+finishid+"' order by type_order asc";
DataSet objdata2 =new DataSet();
objdata2=data1.dbbind(sqlSel);
list2.DataSource =SetType(sqlSel);
list2.DataBind();
}
else
{
sqlSel="select count(id) from tab_product_type2 where id in ("+this.Hidden1.Value+") and parent_code = '"+finishid+"'";
str=data1.readout (sqlSel,0);
i=System.Convert.ToInt16 (str);
if (i>2)
{
list2.DataSource=BindChild(this.Hidden1.Value,finishid,0);
list2.DataBind ();
//sqlSel="select count(id) from tab_product_type2 where id ("+this.Hidden1.Value+") and parent_code = '"+finishid+"' order by type_order asc";
}
else
{
i=2-i;
list2.DataSource=BindChild(this.Hidden1.Value,finishid,i);
list2.DataBind ();
}
}
}
else//为父类
{
DataList list = new DataList();
list = (DataList)e.Item.FindControl("list");
finishid = ((DataRowView)e.Item.DataItem).Row["ID"].ToString();//根据父list绑定子list,得到父list得该行的id
sqlSel = "select top 2* from tab_product_type2 where parent_code = '"+finishid+"' order by type_order asc";
DataSet objdata2 =new DataSet();
objdata2=data1.dbbind(sqlSel);
list.DataSource =SetType(sqlSel);//获取数据源
list.DataBind();
}
}
http://blog.csdn.net/sunnystar365/archive/2005/10/25/516292.aspx
-----------------前台aspx---------------------
<asp:datagrid id="DataGrid1" runat="server" AllowPaging="True" ShowFooter="True">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button id="Button2" runat="server" Text="添加" CommandArgument="addBtn"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button id="Button3" runat="server" Text="删除" CommandArgument="delBtn"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button id="Button4" runat="server" Text="更新" CommandArgument="updateBtn"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn Visible="False">
<ItemTemplate>
<asp:DataGrid id="DataGrid2" runat="server" OnItemCommand="DataGrid2_ItemCommand">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button id="Button5" runat="server" Text="添加" CommandArgument="addBtn"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button id="Button6" runat="server" Text="删除" CommandArgument="delBtn"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn>
<ItemTemplate>
<asp:Button id="Button7" runat="server" Text="更新" CommandArgument="updateBtn"></asp:Button>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle NextPageText="" PrevPageText=""></PagerStyle>
</asp:datagrid>
------------------------------------------
private void Page_Load(object sender, System.EventArgs e)
{
string cmdStr="Select * from Employees";
SqlCommand cmd = new SqlCommand(cmdStr,conn);
SqlDataAdapter ad = new SqlDataAdapter();
ad.SelectCommand=cmd;
ad.Fill(ds);
if(!Page.IsPostBack)
{
DataGrid1.DataSource=ds;
DataGrid1.DataBind();
}private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//TextBox textBox= (TextBox)e.Item.FindControl("TextBox1");
DataGrid dg=(DataGrid)e.Item.FindControl("DataGrid2");
if(dg!=null)
{
dg.DataSource=ds;
dg.DataBind();
}
}
private void DataGrid1_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
DataGrid dg=(DataGrid)e.Item.FindControl("DataGrid2");
}
public void DataGrid2_ItemCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
//此处可以处理内层DataGrid!
}