我想在GridView中用TemplateItem再嵌入一个GridView,那么那个被嵌入的GridView如何进行数据绑定,并且响应其中的事件呢??

解决方案 »

  1.   

    给你个简单的例子做参考: <div>    &nbsp;<asp:GridView ID="GridView1" runat="server" DataKeyNames="OrderID"
                DataSourceID="SqlDataSource1" AutoGenerateColumns="False" OnRowDataBound="GridView1_RowDataBound" OnRowCommand="GridView1_RowCommand" OnRowCreated="GridView1_RowCreated" OnPreRender="GridView1_PreRender">
                <Columns>                
                    <asp:TemplateField HeaderText="CustomerID" SortExpression="CustomerID">                   
                        <ItemTemplate>
                            <asp:Label ID="Label2" runat="server" Text='<%# Bind("CustomerID") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField HeaderText="EmployeeID" SortExpression="EmployeeID">                                
                        <ItemTemplate>
                            <asp:GridView ID="grid1" runat="server" AutoGenerateColumns="false">
                                <Columns>
                                    <asp:TemplateField>
                                         <ItemTemplate>
                                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("LastName") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField>
                                         <ItemTemplate>
                                            <asp:Label ID="Label1" runat="server" Text='<%# Bind("FirstName") %>'></asp:Label>
                                        </ItemTemplate>
                                    </asp:TemplateField>                                
                                </Columns>
                            </asp:GridView>
                        </ItemTemplate>
                    </asp:TemplateField>                
                     <asp:TemplateField HeaderText="CustomerID" SortExpression="EmployeeID">                   
                        <ItemTemplate>
                            <asp:Label ID="Label3" runat="server" Text='<%# Bind("EmployeeID") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        </div>
            <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:northwindConnectionString1 %>"
                SelectCommand="SELECT [OrderID], [CustomerID], [EmployeeID], [OrderDate], [RequiredDate] FROM [Orders]"></asp:SqlDataSource>
    protected void GridView1_PreRender(object sender, EventArgs e)
        {
            Label lb;
            GridView gv;
            foreach (GridViewRow rows in GridView1.Rows)
            {
                lb = (Label)rows.FindControl("Label3");
                string strlb = lb.Text;            SqlConnection myConn = new SqlConnection(ConnectionString);
                string strSql = " select EmployeeID,LastName,FirstName from Employees where EmployeeID= " + strlb;
                SqlDataAdapter myda = new SqlDataAdapter(strSql, myConn);
                DataSet ds = new DataSet();
                myda.Fill(ds);            gv = (GridView)rows.FindControl("grid1");
                gv.DataSource = ds;
                gv.DataBind();        }
        }