如题所述,datalist 显示table1的一部分,gridview显示从table2中查询到和table1的ID相同的项目,gridview的数据怎么绑定?
代码:
<body>
    <form id="form1" runat="server">
    <div>
        <asp:DataList ID="DataList1" runat="server">
            <ItemTemplate>
                &nbsp;<table style="width: 216px">
                    <tr>
                        <td colspan="3">
                        <%#DataBinder .Eval (Container .DataItem ,"id") %>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="3">
                            <asp:GridView ID="GridView1" runat="server">
                            </asp:GridView>
                        </td>
                    </tr>
                </table>
            </ItemTemplate>
        </asp:DataList>
    
    </div>
    </form>
</body>
cs
 SqlConnection con = new SqlConnection(ConfigurationManager.AppSettings["constr"]);
        con.Open();
        SqlDataAdapter dbadapter = new SqlDataAdapter("select id from table1", con);
        DataSet dataset = new DataSet();
        dbadapter.Fill(dataset);
        con.Close();
        DataList1.DataSource = dataset;
开发是用C#。NET,用VS2005

解决方案 »

  1.   

    在DataList的ItemDataBound事件里面写    protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {   
                GridView GridView1=(GridView)e.Item.FindControl("GridView1");
                //查数据
                  GridView1.DataSource = table2;
                GridView1.DataBind();
            }
        }
      

  2.   

    <table style="width: 216px"> 
                        <tr> 
                            <td colspan="3"> 
                            <%#DataBinder .Eval (Container .DataItem ,"id") %> 
    <asp:HiddenField ID="HiddenField1" Value ='<%#DataBinder .Eval (Container .DataItem ,"id") %>' runat="server" />                        
    </td> 
                        </tr> 
                        <tr> 
                            <td colspan="3"> 
                                <asp:GridView ID="GridView1" runat="server"> 
                                </asp:GridView> 
                            </td> 
                        </tr> 
                    </table> HiddenField HiddenField1=(GridView)e.Item.FindControl("HiddenField1");
    加一个隐藏字段
      

  3.   

    HiddenField HiddenField1=(HiddenField)e.Item.FindControl("HiddenField1");更正
      

  4.   

    <body> 
        <form id="form1" runat="server"> 
        <div> 
            <asp:DataList ID="DataList1" runat="server"> 
                <ItemTemplate> 
                    &nbsp; <table style="width: 216px"> 
                        <tr> 
                            <td colspan="3"> 
                            <%#DataBinder .Eval (Container .DataItem ,"id") %> 
                            </td> 
                        </tr> 
                        <tr> 
                            <td colspan="3"> 
                                <asp:GridView ID="GridView1" runat="server" DataSource='<%# GetData(Eval("id").ToString())%>'
                                </asp:GridView> 
                            </td> 
                        </tr> 
                    </table> 
                </ItemTemplate> 
            </asp:DataList> 
        
        </div> 
        </form> 
    </body> 
    后台
    protected DataTable GetData(string id)
    {
    //根据你的id做查询,返回一个DataTable对象即可
    }