我想显示关联表的内容,用Datalist嵌套,我想知道如何设置嵌套的Datalist的DataSource为DataReleation集合\\html<asp:DataList ID="DatalistBigmenu" runat="server" DataKeyField="MenuBig_ID" DataSourceID="SqlDataSource1" Width="100%">
        <ItemTemplate>
            <table width="100%">
                <tr>
                    <td background="images/title.jpg" style="width: 100px">
                        <asp:Label ID="Label1" runat="server" Text='<%# Eval("MenuBig_Name") %>'></asp:Label></td>
                </tr>
                <tr>
                    <td style="width: 100px">
                        <asp:DataList ID="ItemDatalist" runat="server" DataSource='<%# Eval("Big_Small") %>'>
                            <ItemTemplate>
                                <asp:Label ID="MenuSmall_NameLabel" runat="server" Text='<%# Eval("[\"MenuSmall_Name\"]") %>'></asp:Label><br />
                                <br />
                            </ItemTemplate>
                        </asp:DataList></td>
                </tr>
            </table>
        </ItemTemplate>
    </asp:DataList>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:zjbbsConnectionString %>"
        SelectCommand="SELECT * FROM [Bbs_MenuBig]"></asp:SqlDataSource>\\CS    protected void Page_Load(object sender, EventArgs e)
    {
        string sqlstr = ConfigurationManager.ConnectionStrings["zjbbsConnectionString"].ConnectionString;
        SqlConnection con = new SqlConnection(sqlstr);
        SqlDataAdapter sda = new SqlDataAdapter("select * from Bbs_MenuBig", con);
        DataSet ds = new DataSet();
        sda.Fill(ds, "BigMenu");
        SqlDataAdapter sda2 = new SqlDataAdapter("select * from Bbs_MenuSmall", con);
        sda2.Fill(ds, "SmallMenu");
        ds.Relations.Add("Big_Small", ds.Tables["BigMenu"].Columns["MenuBig_ID"], ds.Tables["SmallMenu"].Columns["MenuSmall_BigId"]);    }\\错误提示
DataBinding:“System.Data.DataRowView”不包含名为“Big_Small”的属性。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Web.HttpException: DataBinding:“System.Data.DataRowView”不包含名为“Big_Small”的属性。行 12:                         <asp:DataList ID="ItemDatalist" runat="server" DataSource='<%# Eval("Big_Small") %>'>
麻烦大家看下,真的很郁闷~

解决方案 »

  1.   

    这是我程序里的一个嵌套代码,希望对你有点作用。<asp:datagrid id="grid" runat="server" Width="100%" AutoGenerateColumns="False" AllowPaging="True"
    ShowHeader="False" PageSize="5">
    <Columns>
    <asp:TemplateColumn>
    <ItemTemplate>
    <TABLE cellSpacing="0" cellPadding="0" width="100%" border="0">
    <TR height="30">
    <TD bgColor='<%=Application[Session["Style"].ToString()+"xtable_titlebgcolor"]%>'>
    <STRONG><B>素质岗位:
    <%# DataBinder.Eval(Container.DataItem, "StationName") %>
    </B></STRONG>
    </TD>
    </TR>
    <TR>
    <TD align="right">
    <asp:DataGrid id=dgDetail runat="server" AutoGenerateColumns="False" DataSource='<%# ((System.Data.DataRowView)Container.DataItem).CreateChildView("tableRelation") %>' DataKeyField="CurriculaID" BorderColor="#336666" BorderWidth="1px" CellPadding="5" CellSpacing="0" GridLines="Horizontal" Width="100%" Font-Size="Smaller">
    <Columns>
    <asp:BoundColumn Visible="False" DataField="CurriculaID" ReadOnly="True"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="考试课程">
    <HeaderStyle Width="250px"></HeaderStyle>
    <ItemTemplate>
    <%# DataBinder.Eval(Container.DataItem, "CurriculaName") %>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    <PagerStyle HorizontalAlign="Center" ForeColor="White" BackColor="#336666" Mode="NumericPages"></PagerStyle>
    </asp:DataGrid>
    </TD>
    </TR>
    </TABLE>
    </ItemTemplate>
    </asp:TemplateColumn>
    <asp:HyperLinkColumn Text="修改" DataNavigateUrlField="ID" DataNavigateUrlFormatString="modify.aspx?id={0}"
    HeaderText="修改">
    <HeaderStyle Width="20px"></HeaderStyle>
    </asp:HyperLinkColumn>
    </Columns>
    <PagerStyle Visible="False"></PagerStyle>
    </asp:datagrid>
    DataSet myDataSet=new DataSet();
    BLL.Station bll=new BLL.Station();
    myDataSet=bll.GetList(strWhere.Replace("StationID","ID")); DataSet ds = new DataSet();
    BLL.V_Station_Curricula bllV=new V_Station_Curricula();
    ds=bllV.GetList(strWhere.Replace("DelSign=0","'1'='1'"));
    DataTable myTable=ds.Tables[0].Copy();
    myTable.TableName="C";
    myDataSet.Tables.Add(myTable);
    try
    {
    //设定表名字
    myDataSet.Tables[0].TableName = "Station";
    myDataSet.Tables[1].TableName = "V_Station_Curricula";
    DataColumn Parent = myDataSet.Tables["Station"].Columns["ID"];
    DataColumn Child  = myDataSet.Tables["V_Station_Curricula"].Columns["StationID"];
    DataRelation tableRelation = new DataRelation("tableRelation", Parent, Child, false);
    myDataSet.Relations.Add(tableRelation);
    }
    catch(Exception error)
    {
    Response.Write(error.ToString());
    } grid.DataSource = myDataSet.Tables["Station"].DefaultView;
    grid.DataBind();
      

  2.   

    受打击了,我不知道我是不是应该学下去...论坛的主页面就像  www.51pinke.com一个大的分类,一个小的分类,小的分类里有主题,作者,日期,今日发表数...是不是分了好几个表来存的,谁能给个思路,我想学习一下我用Datalist嵌套一个Datalist,但我不知道怎么样再去关联主题表,再用主题表关联作者表...我觉得好复杂,这个应该怎么做?