先看图:因为分类是会随时增删的,所以要动态生成上图。如果用datalist三列样式是一样的了,或者说不能差别太大,而我的各列差别很大。
不知道如何实现,还请高人多多指教

解决方案 »

  1.   

    首先是要使用DataList的嵌套或者DataList里嵌套一个Repeater。DataList中各列的样式不好控制。
      

  2.   

    有没有办法,弄一个这样的控件,然后我for(int i=0;i<dv.count;i=i+3)数据,然后动态的调用那个控件
      

  3.   

    反过来。用Repeater或者ListView嵌套DataList。
    Repeater的中的模板的表格列的样式是可以控制的。
      

  4.   

    Repeater中的Table的Html代码需要手写,并为每个单元格加上CSS控制(两行三列,第一行的三个Td里绑定类别,第二行的三个Td里分别绑定和本类别相关的内容列表)
      

  5.   

    与类别相关的内容列表用DataList
      

  6.   

    liuyeede现在我可以实现
    Repeater里放三列,也就是将三列直接放到item里,    ---这个Repeater称为Parent吧
    然后这三列再加Repeater这个Repeater的source是根据Parent里的数据来的,如dv[i]["id"] dv[i+1]["id"] dv[i+2]["id"]但这时,因为Parent他的默认绑定是一行一个,到下一行的第一个时,成了 dv[i+1]["id"] 而不是我要的 dv[i+3]["id"]
      

  7.   

    直接用服务器端table控件,每一个单元格里内嵌一个DataList或者Repeater.但所有的都需要动态生成。从数据库获取到类别的数量后(动态生成Table的行和列,每一个单元格中在动态的生成一个repeater或者DataList,所有的代码都在后台完成)。这样就实现了样式和数据重复的可控制。
      

  8.   

    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl2.ascx.cs"
        Inherits="WebUserControl2" %>
    <table width="990" border="0" cellspacing="0" cellpadding="0" align="center" bgcolor="#FFFFFF">
        <tr>
            <td width="24" background="image/ww005.jpg">
                &nbsp;</td>
            <td width="943">
                <table width="944" border="0" cellspacing="0" cellpadding="0" align="center" bgcolor="#FFFFFF">
                    <tr>
                        <td style="width: 195px">
                            <asp:Repeater ID="Repeater1" runat="server" DataSource='<%# GetData("0") %>' >
                                <ItemTemplate>
                                    <%#Eval("Dept") %>
                                </ItemTemplate>
                            </asp:Repeater>
                            左边
                        </td>
                        <td>
                            右边                    </td>
                    </tr>
                </table>
            </td>
            <td width="23" background="image/ww006.jpg">
            </td>
        </tr>
    </table>
    里面的:DataSource='<%# GetData("0") %>' >没有执行,不知道什么原因
      

  9.   

    在前台代码中不要写有关datasource的部分,放到后台代码中你看一下:
    this.Repeater1.DataSource=GetData("0");
      

  10.   

    前台是在datalist里加了三个 Repeater,这几个的ID可都是不定的,当然没法在代码里写了
      

  11.   

    有一个效率较差的方法:
    根据从数据库中获取到的类别数据的,动态生成一个服务器端的Table(可通过循环实现)。Table的每个单元格放一条类别数据,同时在里边再动态生成一个Repeater或者DataList。所有的这些都通过后台代码实现。