ASP.NET中GridView中嵌套GridView
來源:互聯網
上載者:User
//aspx頁面<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" GridLines="None" ShowHeader="False" OnRowDataBound="GridView2_RowDataBound"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="true"> </asp:GridView> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>//aspx.cs頁面protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { GridView Grd = e.Row.Cells[0].FindControl("GridView1") as GridView; Grd.DataSource = 資料集; Grd.DataBind(); } } ******************************************************************* gridview嵌套gridview++++++++++.aspx代碼++++++++++++++++OnRowDataBound事件,與1.x中的ItemDataBound有一腿. <!--第一層GridView開始--> <asp:GridView ID="GridView1" OnRowDataBound="GridView1_RowDataBound" AutoGenerateColumns=false runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <%#Container.DataItem.ToString()%> <!--第二層GridView開始--> <asp:GridView ID="GridView2" OnRowDataBound="GridView2_RowDataBound" AutoGenerateColumns=false runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <%#Container.DataItem.ToString()%> <!--第三層GridView開始--> <asp:GridView ID="GridView3" AutoGenerateColumns=false runat=server> <Columns> <asp:TemplateField> <ItemTemplate> <%#Container.DataItem.ToString()%> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <!--第三層GridView 結束--> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <!--第二層GridView結束--> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView> <!--第一層GridView結束-->++++++++++.cs代碼++++++++++++++++RowDataBound與1.x中的ItemDataBound也有一腿!using System;using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Collections;public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { this.GridView1.DataSource = Al("GridView1Item:"); this.GridView1.DataBind(); } //DataSource protected ArrayList Al(string GetStr) { ArrayList al = new ArrayList(); for(int i=0;i<2;i++) { al.Add(GetStr+i.ToString()); } return al; } //GridView1_RowDataBound protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { GridView gv = (GridView)e.Row.FindControl("GridView2"); gv.DataSource = Al("GridView2Item:"); gv.DataBind(); } } //GridView2_RowDataBound protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { GridView gv = (GridView)e.Row.FindControl("GridView3"); gv.DataSource = Al("GridView3Item:"); gv.DataBind(); } }}