seeHierarchical Data and the ASP.NET DataGrid
http://www.dotnetjunkies.com/Tutorial/841522C9-FFBD-4C57-BD48-F62B55057FF3.dcikUsing Nested DataGrids in ASP.NET
http://www.codeguru.com/Csharp/.NET/net_data/datagrid/article.php/c5619
http://www.dotnetjunkies.com/Tutorial/841522C9-FFBD-4C57-BD48-F62B55057FF3.dcikUsing Nested DataGrids in ASP.NET
http://www.codeguru.com/Csharp/.NET/net_data/datagrid/article.php/c5619
解决方案 »
- System.IndexOutOfRangeException: 索引超出了数组界限。
- post 登陆cnzz 获取网站ip访问 高手来吧
- 如何利用javascript,禁用掉IE浏览器的刷新按钮???或者干脆在程序的首页上就不显示IE的工具栏???
- gridview某个字段需要函数进行转换来显示,不知道在何处调用函数来实现?
- 文本域File Field 图片预览/上传的问题, 高手进,在线等
- 关于DropdownList 级连的问题
- ListBox 问题
- Up有分!!有什么办法可以动态更改<HEAD>标签里的内容?
- 新手的问题,为什么出现下面的提示框?要怎么解决?谢谢
- 在vs.net中生成数据集时产生“未指定的错误”该如何解决
- Nant和Cvs结合哪位老兄用过?进来帮我看看吧,谢谢,顶者有分!!
- C#能否象JAVA那样根据类名建立Class类型的对象
具体见孟子E章:
http://dotnet.aspx.cc/ShowDetail.aspx?id=149E5DD7-3B32-461e-ACC6-51D1652E6746
<%@ Import namespace="System.Data"%>
<%@ OutputCache Duration="500000" VaryByParam="None" %>
<script language="javascript">
function showHide(div) {
oDiv = document.getElementById(div);
if (oDiv.style.display == 'none') {
oDiv.style.display = 'block';
} else {
oDiv.style.display = 'none';
}
}
</script>
<asp:DataGrid id="DepartmentDataGrid" runat="server" AutoGenerateColumns="False" BorderWidth="0" Width="100%" showheader="false" >
<ItemStyle CssClass="top" />
<ItemStyle CssClass="toptr2"></ItemStyle>
<Columns>
<asp:TemplateColumn ItemStyle-VerticalAlign="Top" ItemStyle-Width="100%">
<ItemTemplate>
<table width="100%">
<tr >
<td>
<A onClick="showHide('orders_<%# DataBinder.Eval(Container.DataItem, "DepartmentId") %>')" >
<img src="img\plus.gif"> <%# DataBinder.Eval(Container.DataItem, "DepartmentName") %>
</A>
</td>
</tr>
<tr id='orders_<%# DataBinder.Eval(Container.DataItem, "DepartmentId") %>' style="display:none" align="center" >
<td align="right">
<asp:DataGrid runat="server" AutogenerateColumns="False" Width="100%" BorderWidth="0" DataSource='<%# ((DataRowView)Convert.ChangeType(Container.DataItem, typeof(DataRowView))).CreateChildView("OrderRelation") %>' ID="Datagrid1" ShowHeader="False">
<ItemStyle CssClass="blackw" />
<Columns>
<asp:TemplateColumn>
<ItemStyle HorizontalAlign="Center"></ItemStyle>
<ItemTemplate>
<IMG SRC="img\sub.GIF">
</ItemTemplate>
</asp:TemplateColumn>
<asp:HyperLinkColumn Target="_blank" DataNavigateUrlField="CategoryId" DataNavigateUrlFormatString="..\ProductByParam.aspx?CategoryId={0}" DataTextField="CategoryName"></asp:HyperLinkColumn>
</Columns>
</asp:DataGrid>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
{
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using ShopClass;
using System.Configuration;
/// <summary>
/// DepartmentControl 的摘要说明。
/// </summary>
public class DepartmentControl : System.Web.UI.UserControl
{
protected System.Web.UI.WebControls.DataGrid DepartmentDataGrid;
protected System.Web.UI.WebControls.DataGrid CategoryDataGrid;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
BindData();
}
}
protected void BindData()
{
string strConn = ConfigurationSettings.AppSettings["strConnection"];
SqlConnection conn=new SqlConnection(strConn);
DataSet ds=new DataSet();
SqlDataAdapter da=new SqlDataAdapter("select * from Department;select * from Category", conn);
da.Fill(ds);
ds.Tables[0].TableName = "department" ;
ds.Tables[1].TableName = "category" ;
DataColumn Parent = ds.Tables["department"].Columns["DepartmentId"] ;
DataColumn Child = ds.Tables["category"].Columns["DepartmentId"] ;
DataRelation OrderRelation = new DataRelation("OrderRelation", Parent, Child,false);
ds.Relations.Add(OrderRelation) ;
DepartmentDataGrid.DataSource=ds.Tables["department"].DefaultView;
DepartmentDataGrid.DataBind();
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}