将数据从SQL Server绑定到标签

时间:2010-07-07 04:19:35

标签: asp.net sql-server data-binding

我正在做这么小的网页,其中包含4个主要的HTML div,它应该包含来自SQL数据库的最新4个新闻。

所以我设计了它们,并将它们放在标签控件和Image控件上。

并将SQL中的信息绑定到它们,我使用了(DataView)对象,并使用从0到3的循环,我得到了我需要的数据。

但我相信这种方式并不完美!所以我需要一些更清晰和有效的东西!

4 个答案:

答案 0 :(得分:1)

在您的页面上创建<asp:repeater ... />控件并将其绑定到您的SQL数据源 在数据源中创建适当的Select语句(或使用LINQ,或任何您喜欢的)。

布局转发器控件就像这样

        <asp:Repeater ID="Repeater1" runat="server" DataSourceID="MyDataSource">
            <HeaderTemplate>
                <div style="height: 30px;">
                     Header info
                </div>
            </HeaderTemplate>
            <ItemTemplate>
               <div>
                  <%# Eval("SomeInfo")%>
                  <img src='<%# Eval("SomeImage")%>' title='<%# Eval("SomeImageTitle")%>' alt='<%# Eval("SomeImageAlt")%>' />
               </div>
            </ItemTemplate>
            <SeparatorTemplate>
                <hr />
            </SeparatorTemplate>
            <FooterTemplate>
                <div style="height: 25px;">
                       Footer Stuff
                </div>
            </FooterTemplate>
        </asp:Repeater>

答案 1 :(得分:1)

不知道您正在使用的.NET版本,因此可能会影响此答案,但是......

LinqDataSource将是一种很好的方法,因为您可以指定数据级过滤(即TOP 3),而不是页级过滤(在内存循环中)。

答案 2 :(得分:0)

假设您的数据视图仅包含您要显示的4个项目,您可能希望使用其中一个DataRepeater样式的ASP.NET控件。

将DataView绑定到控件Datasource属性,并为页面或控件调用.DataBind()(页面调用对所有控件都是递归的)

DataRepeater内部将是一个“模板”控件,其内容类似于

<div style="st1"><%# Eval("NewsText") %>&nbsp;<img src='<%# Eval("ImgSrc") %>' /></div>

答案 3 :(得分:-1)

您可以使用LINQ检索数据。

举例说明:

var latestNews = (from n in db.News orderby n.Date descending select n).Take(4).ToList();

label1.Text = latestNews[0].Content;
label2.Text = latestNews[1].Content;
label3.Text = latestNews[2].Content;
label4.Text = latestNews[3].Content;