表1:一级分类的表,表名:yiji(id,name)表2:二级分类的表,表名:erji(id,name,fid)  [备注:fid是外键,相对应yiji的id]我想从一个页面中显示如下的效果:
-----------------------------------------------------------------------------
一级栏目1   二级栏目1--1
   二级栏目1--2
   二级栏目1--3一级栏目2   二级栏目2--1
   二级栏目2--2
   二级栏目2--3一级栏目3   二级栏目3--1
   二级栏目2--2
   二级栏目2--3
-----------------------------------------------------------------------------
由于刚接触ASP.NET,发现ASP.NET都是用控件绑定数据源的,以前写ASP和JSP处理这样的一和二级栏目很容易,现在不知道在ASP.NET是如何处理这种情况的。因为二级栏目的取得要根据一级栏目的ID来定,我不知道如何处理了。希望大家能给点思路,如果有简单的代码示意那更好,表示感谢!

解决方案 »

  1.   

    好的,我给你个,DATALIST嵌套的,给你看看,等我发以下是.aspx文件,代码如下:<%@ Page Language="vb" AutoEventWireup="false" Codebehind="index.aspx.vb" Inherits="WebApplication8.index"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <title>index</title>
    <style type="text/css">TD { FONT-SIZE: 9pt; LINE-HEIGHT: 150% }
    BODY { SCROLLBAR-FACE-COLOR: #eeeeee; FONT-SIZE: 12px; SCROLLBAR-HIGHLIGHT-COLOR: #ffffff; SCROLLBAR-SHADOW-COLOR: #dee3e7; SCROLLBAR-3DLIGHT-COLOR: #d1d7dc; SCROLLBAR-ARROW-COLOR: #006699; SCROLLBAR-TRACK-COLOR: #ededed; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif, 宋体; SCROLLBAR-DARKSHADOW-COLOR: #98aab1 }
    A:link { FONT-SIZE: 9pt; COLOR: #363636; LINE-HEIGHT: 18px; TEXT-DECORATION: none }
    A:visited { FONT-SIZE: 9pt; COLOR: #363636; LINE-HEIGHT: 18px; TEXT-DECORATION: none }
    A:hover { COLOR: #cc0000; LINE-HEIGHT: 18px; TEXT-DECORATION: underline }
    INPUT { BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: #d2d2d2; BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #d2d2d2; BORDER-TOP-COLOR: #d2d2d2; LINE-HEIGHT: 120%; FONT-FAMILY: "tahoma", "arial", "helvetica", "sans-serif", "宋体"; BACKGROUND-COLOR: #f9f9f9; BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #d2d2d2 }
    SELECT { BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: #d2d2d2; BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #d2d2d2; BORDER-TOP-COLOR: #d2d2d2; LINE-HEIGHT: 120%; FONT-FAMILY: "tahoma", "arial", "helvetica", "sans-serif", "宋体"; BACKGROUND-COLOR: #f9f9f9; BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #d2d2d2 }
    TEXTAREA { BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; FONT-SIZE: 9pt; BORDER-LEFT-COLOR: #d2d2d2; BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: #d2d2d2; BORDER-TOP-COLOR: #d2d2d2; LINE-HEIGHT: 120%; FONT-FAMILY: "tahoma", "arial", "helvetica", "sans-serif", "宋体"; BACKGROUND-COLOR: #f9f9f9; BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: #d2d2d2 }
    </style>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <table id="table1" borderColor="#66ccff" width="50%" align="center" border="1">
    <tr align="center">
    <td align="center"><asp:datalist id="dlt1" Width="100%" Runat="server">
    <ItemTemplate>
    <tr align="left">
    <td align="left" bgcolor="#66ccff">
    <asp:Label ID="lblclassid" Runat="server" text='<%# container.dataitem("classid")%>'>
    </asp:Label>&nbsp;&nbsp; <a href='bigbankuai.aspx?classid=<%# container.dataitem("classid")%>'>
    <%# container.dataitem("classname")%>
    </a>
    </td>
    </tr>
    <tr>
    <td>
    <asp:datalist ID="dlt2" Runat="server">
    <ItemTemplate>
    <tr>
    <td align="left">
    <a href='bankuai.aspx?classid=<%# container.dataitem("classid")%>&nclassid=<%# container.dataitem("nclassid")%>'>
    <%# container.dataitem("nclassname")%>
    </a>
    </td>
    </tr>
    </ItemTemplate>
    </asp:datalist></td>
    </tr>
    </ItemTemplate>
    </asp:datalist></td>
    </tr>
    </table>
    </form>
    </body>
    </HTML>
      

  2.   

    以下是.vb文件,代码如下:Imports System
    Imports WebApplication8.hackate_cls
    Public Class index
        Inherits System.Web.UI.Page#Region " Web 窗体设计器生成的代码 "    '该调用是 Web 窗体设计器所必需的。
        <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()    End Sub
        Protected WithEvents dlt1 As System.Web.UI.WebControls.DataList    '注意: 以下占位符声明是 Web 窗体设计器所必需的。
        '不要删除或移动它。
        Private designerPlaceholderDeclaration As System.Object    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
            'CODEGEN: 此方法调用是 Web 窗体设计器所必需的
            '不要使用代码编辑器修改它。
            InitializeComponent()
        End Sub#End Region
        Dim conn As SqlClient.SqlConnection
        Dim cmd As SqlClient.SqlCommand
        Dim rs As SqlClient.SqlDataReader
        Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            If Not IsPostBack Then
                'conn = New SqlClient.SqlConnection(ConfigurationSettings.AppSettings("shujuku"))
                'cmd = New SqlClient.SqlCommand("select * from hkbbs_class", conn)
                'conn.Open()
                'rs = cmd.ExecuteReader            dlt1.DataSource = sqldaselect.daselect("select * from hkbbs_class")
                dlt1.DataBind()
                'rs.Close()
                'cmd.Dispose()
                'conn.Close()
            End If
        End Sub    Private Sub dlt1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlt1.ItemDataBound
            'Dim tmpid As Label = CType(e.Item.FindControl("lblclassid").text, Label)
            Dim tmpid As String = CType(e.Item.FindControl("lblclassid"), Label).Text
            'Response.Write("<script>alert('" & tmpid & "');</script>")
            'conn = New SqlClient.SqlConnection(ConfigurationSettings.AppSettings("shujuku"))
            'cmd = New SqlClient.SqlCommand("select * from hkbbs_nclass where classid='" & tmpid & "'", conn)
            'conn.Open()
            'rs = cmd.ExecuteReader
            Dim tmpdlt As DataList = CType(e.Item.FindControl("dlt2"), DataList)
            tmpdlt.DataSource = sqldaselect.daselect("select * from hkbbs_nclass where classid='" & tmpid & "'")
            tmpdlt.DataBind()
            'rs.Close()
            'cmd.Dispose()
            'conn.Close()
        End SubEnd Class
      

  3.   

    对了!这个表的设计是这样的大类的表里面字段是 classid classname   这两个字段
    小类的表字段是 nclassid nclassname classid   三个字段然后你会明白的上面有的我都写在类里面,数据连接的,还有我注释的那些都是没用类时的,你自己看看