数据库中
id               news                                      type
1              1234564654                                  军事
2              asdfasdf                                    军事
3             aasdfas1616                                  经济
………………
显示的结果:
军事:
     1.1234564654
    2.asdfasdf
    3.sdfasdfsd
    ………………
经济:
     1.aasdfas1616
     ………………
………………
怎么显示?
我想用一个Datalist嵌套一个Datalist该怎么实现?
各抒己见,解答具体点!

解决方案 »

  1.   

    直接DATALIST里放个DATALIST就可以了啊
      

  2.   


    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>test</title>
    </head>
    <body>
        <form id="form1" runat="server" method="post">
        <div>
            <asp:DataList ID="DataList1" runat="server">
                <ItemTemplate>
                    <%# Eval("type")%>
                    <asp:DataList ID="DataList2" runat="server" DataSource='<%# GetNews(Eval("type").ToString()) %>'>
                        <ItemTemplate>
                            <%# ((DataListItem)Container).ItemIndex + 1 %>. <%# Eval("news")%>                   
                        </ItemTemplate>
                    </asp:DataList>
                </ItemTemplate>
            </asp:DataList>
        </div>
        </form>
    </body>
    </html>private void BindList()
    {
        SqlConnection cn = new SqlConnection(@"server=.\sqlexpress;uid=sa;pwd=;database=Demo");
        SqlCommand cmd = new SqlCommand("select distinct [type] from Test", cn);
        cn.Open();
        DataList1.DataSource = cmd.ExecuteReader();
        DataList1.DataBind();
        cn.Close();
    }protected DataTable GetNews(string type)
    {
        SqlConnection cn = new SqlConnection(@"server=.\sqlexpress;uid=sa;pwd=;database=Demo");
        SqlDataAdapter da = new SqlDataAdapter("select news from test where [type] = @type", cn);
        da.SelectCommand.Parameters.Add("@type", SqlDbType.VarChar).Value = type;
        DataSet ds = new DataSet();
        cn.Open();
        da.Fill(ds);
        cn.Close();
        return ds.Tables[0];
    }private void Page_Load(object sender, System.EventArgs e)
    {
        if (!IsPostBack)
        {
            BindList();
        }
    }