表名 Members  其中有两个字段:Name , ID 。Name对应的ID可以重复, 如果要读出这个表中特定 ID对应的所有Name,并且在网页中用这种格式显示:Name1  Name2 Name3.....  (就是横向显示) 应该用什么控件 datagrid  datalist 还是  repeater?  怎么用?  望高人指点  尽量详细一些  谢谢!!

解决方案 »

  1.   

    在datagrid或datalist中嵌入repeater这个麻烦一点。
    或者生成一个表字段是ID,NAMES,其中NAMES的值就是各NAME相加起来的字符串。
      

  2.   

    这样的话那每个Name可以设置超链接吗?
      

  3.   

    问题是照上面的说法  所有的Name 都在一个字段里面 我怎么样才能把每个Name 都单独设置一个链接?
      

  4.   

    placehoder控件
    用for循环写进placehoder控件里。
      

  5.   

    我想到一个办法,不过没试验,你可以试试:
    在生成NAMES字段时,按照下列格式:<a herf="***">name1</a>&nbsp;<a herf="***">name2</a>.....
    然后用一Label控件显示,不知道行不行
      

  6.   

    给你段Datalist的代码去看看吧
    <%@ Import Namespace="System.Data" %><html>
    <script language = "C#" runat="server">    ICollection CreateDataSource() {
            DataTable dt = new DataTable();
            DataRow dr;        dt.Columns.Add(new DataColumn("StringValue", typeof(string)));        for (int i = 0; i < 10; i++) {
                dr = dt.NewRow();
                dr[0] = "Item " + i.ToString();
                dt.Rows.Add(dr);
            }        DataView dv = new DataView(dt);
            return dv;
        }    void Page_Load(Object Sender, EventArgs E) {
            if (!IsPostBack) {
                DataList1.DataSource = CreateDataSource();
                DataList1.DataBind();
            }
        }    void Button1_Click(Object Sender, EventArgs E) {        if (DropDown1.SelectedIndex == 0)
                DataList1.RepeatDirection = RepeatDirection.Horizontal;
            else
                DataList1.RepeatDirection = RepeatDirection.Vertical;
            if (DropDown2.SelectedIndex == 0)
                DataList1.RepeatLayout = RepeatLayout.Table;
            else
                DataList1.RepeatLayout = RepeatLayout.Flow;
            DataList1.RepeatColumns=DropDown3.SelectedIndex+1;        if ((Check1.Checked ==true) && (DataList1.RepeatLayout == RepeatLayout.Table)) {
                DataList1.BorderWidth = Unit.Pixel(1);
                DataList1.GridLines = GridLines.Both;
            }
            else  {
                DataList1.BorderWidth = Unit.Pixel(0);
                DataList1.GridLines = GridLines.None;
            }
        }</script><body>    <h3><font face="Verdana">Simple DataList Sample</font></h3>    <form runat=server>
        <font face="Verdana" size="-1">        <asp:DataList id="DataList1" runat="server"
                BorderColor="black"
                CellPadding="3"
                Font-Name="Verdana"
                Font-Size="8pt"
                HeaderStyle-BackColor="#aaaadd"
                AlternatingItemStyle-BackColor="Gainsboro"
                >
                  <HeaderTemplate>
                    Items
                  </HeaderTemplate>
                  <ItemTemplate>
                    <%# DataBinder.Eval(Container.DataItem, "StringValue") %>
                  </ItemTemplate>
            </asp:DataList>        <p>
            <hr noshade align="left" width="300px">
            RepeatDirection:
            <asp:DropDownList id=DropDown1 runat="server">
                <asp:ListItem>Horizontal</asp:ListItem>
                <asp:ListItem>Vertical</asp:ListItem>
            </asp:DropDownList><br>        RepeatLayout:
            <asp:DropDownList id=DropDown2 runat="server">
                <asp:ListItem>Table</asp:ListItem>
                <asp:ListItem>Flow</asp:ListItem>
            </asp:DropDownList><br>        RepeatColumns:
            <asp:DropDownList id=DropDown3 runat="server">
                <asp:ListItem>1</asp:ListItem>
                <asp:ListItem>2</asp:ListItem>
                <asp:ListItem>3</asp:ListItem>
                <asp:ListItem>4</asp:ListItem>
                <asp:ListItem>5</asp:ListItem>
            </asp:DropDownList><br>        Show Borders:
            <asp:CheckBox id=Check1 runat="server" /><p>        <asp:LinkButton id=Button1 Text="Refresh DataList" OnClick="Button1_Click" runat="server"/>
        </font>
        </form></body>
    </html>
      

  7.   

    用DataList比较可行,
    可以设定每行显示几组数据,
    你可以设定显示数为你取得的数据总行数。