通过法线从DB显示多行?

时间:2009-06-04 18:57:22

标签: asp.net linq

当我在数据库中有一个包含许多行的表时 我想用普通线显示它们(不用Gridview)。像:

  

你教这些课程:   1/1级,2/1级,3/1级

我们从数据库中获取(1/1和2/1和3/1)。

我该怎么办?

注意:我使用LINQ来处理数据库。

2 个答案:

答案 0 :(得分:1)

使用转发器对我来说似乎是最简单的方法。它看起来像这样。

<div>
    You teach these classes:
    <asp:Repeater
        ID="rptListOfClasses" 
        runat="server" 
        DataSourceID="linqDataSource" >
        <ItemTemplate>
            <span> class <%# Eval("ClassDate") %>, </span>
        </ItemTemplate>
    </asp:Repeater>
</div>

答案 1 :(得分:0)

<asp:ListView ID="lvClass" runat="server" DataSourceID="LinqDataSource1"  OnItemDataBound ="lvResult_ItemDataBound" >
    <LayoutTemplate>
        You teach these classes:&nbsp;
        <asp:PlaceHolder runat="server" ID="itemPlaceHolder" ></asp:PlaceHolder>
    </LayoutTemplate>
    <ItemTemplate>  
            <asp:Label ID="lblClass"  runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Class") + ", " %>' ></asp:Label>                                          
    </ItemTemplate>   

</asp:ListView>


<asp:LinqDataSource ID="LinqDataSource1"  runat="server" 
    ContextTypeName="MyDataContext" TableName="ClassList" 
    onselected="LinqDataSource1_Selected">
</asp:LinqDataSource>

背后的代码: //删除最后一个逗号(,)

public class Test : System.Web.UI.Page
    {
        int iCount = 0;
 protected void lvResult_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
            if (e.Item.ItemType == ListViewItemType.DataItem)
            {

                Label lblClass = e.Item.FindControl("lblClass") as Label;
                ListViewDataItem lvItem = e.Item  as ListViewDataItem ;
                if (lblClass != null)
                    if (lvItem.DataItemIndex == (iCount  - 1))
                        lblClass.Text = lblClass.Text.Substring(0, lblClass.Text.ToString().Length  - 2);



            }
        }

        protected void LinqDataSource1_Selected(object sender, LinqDataSourceStatusEventArgs e)
        {
            iCount = e.TotalRowCount;
        }

}