正是你想要的:
http://www.denisbauer.com/ASPNETControls/HierarGrid.aspx
http://www.denisbauer.com/ASPNETControls/HierarGrid.aspx
解决方案 »
- 水晶报表动态添加数据集DdatSet时出现“无法加载数据库 DLL 'crdb_oracle.dll”的错误?
- Excel导入数据库问题!
- 无法运行ASP.NET Web应用程序
- 如何取到控件在设计时的位置
- 调试的一个问题,求助啊!
- 有关DataGrid中UpdateCommand事件,请帮忙,谢谢!
- Windows Authentication, workgroup方式下的怪问题
- 如何在页面中查找checkbox类型的控件?立刻给分
- 在asp.net里有关treeview的数据库表如何建立
- Gridview中用sqldatasource作数据源怎样实现多条件查询?
- 紧急求救:如何将date time pickter等控件与web控件放在同一个web form中后能同时获取他们的值?
- 请大家帮个忙
<asp:datagrid id="dg_item" runat="server" CssClass="wrap1" Width="98%" DataKeyField="n_item_pk" AutoGenerateColumns="False" AllowPaging="True">
<Columns>
<asp:TemplateColumn HeaderText="收费项目依据(文件号)">
<ItemStyle Width="120px" HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<span id="span_item" runat="server"></span>
</ItemTemplate>
</asp:TemplateColumn> </Columns>
</asp:datagrid>
//绑定项目的datagrid数据源的函数
private void bind_item()
{
//获得数据源
wjj_item wi_item_source=new wjj_item();
DataTable dt_item_source=(DataTable)Session["dg_item_source"];
dg_item.DataSource=dt_item_source.DefaultView;
dg_item.DataBind();
//绑完数据后,增加连接数据
wi_item_source.add_item_link_file(ref dg_item);
}
//增加项目依据文件链接
public void add_item_link_file(ref DataGrid dg_resouce)
{
//增加项目依据文件链接
foreach (DataGridItem dgi_item in dg_resouce.Items)
{
DataSet ds_span=this.search_item_file_(dg_resouce.DataKeys[dgi_item.ItemIndex].ToString(),"tb_span");
StringBuilder sb_span_content=new StringBuilder();
if (ds_span.Tables["tb_span"].Rows.Count!=0)
{
for (int i=0;i<=ds_span.Tables["tb_span"].Rows.Count-1;i++)
{
//增加链接<a></a> sb_span_content.AppendFormat("<a target=_blank href='show_file.aspx?type=zcfg&file_id={0}'>{1}</a><br>",
ds_span.Tables["tb_span"].Rows[i]["n_file_pk"].ToString(),
ds_span.Tables["tb_span"].Rows[i]["vc_file_"].ToString());
}
}
((HtmlGenericControl)(dgi_item.Cells[1].Controls[1])).InnerHtml=sb_span_content.ToString();
}
}看起来比较复杂,其基本的思路就是根据DataKeyField="n_item_pk"属性查找该其外键表中的记录,然后在datagrid的单元格的span中插入<a>标签。