none
这是如何实现的?(DataList分组绑定) RRS feed

  • 问题

  • 这是华锐B2B的一个分组显示,就是将行业分类显示,如:

    大类一                               |    大类二

         小类11 小类12  小类13   |       小类21  小类22    小类23                          

         ........                            |

    _______________________ |____________________________

     

    ........

    无后台代码,

    数据表:

    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[HR_WareClass](
     [WareClassId] [int] NOT NULL,
     [ParentID] [int] NOT NULL CONSTRAINT [DF_HR_WareClass_ParentID]  DEFAULT (0),
     [Name] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_HR_WareClass_Name]  DEFAULT (''),
     [ClassSort] [int] NULL CONSTRAINT [DF_HR_WareClass_ClassSort]  DEFAULT (0),
     CONSTRAINT [PK_HR_WareClass] PRIMARY KEY CLUSTERED
    (
     [WareClassId] ASC
    )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]

    GO
    SET ANSI_PADDING OFF

    就是说:该表通过自连接可以找到每个小类所属的大类信息.

    用DataList嵌套可以实现,但是源码上只使用一个DataList,不知它是如何实现的?

    和.NET3.5框架有关吗?

    它的代码如下:

    <aspBig SmileataList ID="DataList1" runat="server" RepeatColumns="2"
        RepeatDirection="Horizontal" ShowFooter="False" ShowHeader="False">
        <ItemTemplate>
            <dl>
                <dt>
                    <asp:HyperLink ID="HyperLink1" runat="server"  Text='<%# DataBinder.Eval(Container, "DataItem.Name") %>'></asp:HyperLink>
                    <asp:HyperLink ID="HyperLink2" runat="server" ></asp:HyperLink>
                    <asp:Label ID="Label1" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.WareClassId") %>' Visible="false"></asp:Label>
                </dt>
                <dd>
                   
                    <asp:Label ID="Label2" runat="server" ></asp:Label>
               </dd>
            </dl>
        </ItemTemplate>
    </aspBig SmileataList>

    多谢!

     

    2008年12月29日 2:57

答案

全部回复