Привязка данных с SQL Server к метке - PullRequest
1 голос
/ 07 июля 2010

Я делаю такую ​​маленькую веб-страницу, которая содержит 4 основных HTML-элемента div, которые должны содержать последние 4 NEWS из базы данных SQL.

так что я их спроектировал, и поместил в каждый элемент управления надписью и элемент управления изображением.

и для привязки к ним информации из SQL я использовал объект (DataView), а с помощью цикла от 0 до 3 я получаю необходимые мне данные.

но я считаю, что этот путь не идеален! поэтому мне нужно что-то более четкое и эффективное!

Ответы [ 4 ]

1 голос
/ 07 июля 2010

Не знаю, какую версию .NET вы используете, так что это может повлиять на этот ответ, но ...

LinqDataSource было бы хорошим способом сделать это, так какВы можете указать фильтрацию на уровне данных (т. е. TOP 3) вместо фильтрации на уровне страницы (в цикле памяти).

1 голос
/ 07 июля 2010

создайте на своей странице элемент управления <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>
0 голосов
/ 07 июля 2010

Предполагая, что ваше представление данных содержит только 4 элемента, которые вы хотите отобразить, вы, вероятно, захотите использовать один из элементов управления ASP.NET в стиле DataRepeater.

Вы связываете DataView со свойством Datasource элементов управленияи вызовите .DataBind () для страницы или элемента управления (вызов страницы рекурсивен для всех элементов управления)

Внутри DataRepeater будет элемент управления «Шаблон», содержимое которого будет выглядеть примерно так:

<div style="st1"><%# Eval("NewsText") %>&nbsp;<img src='<%# Eval("ImgSrc") %>' /></div>
0 голосов
/ 07 июля 2010

Вы можете получить данные, используя 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;
...