2010-07-07 45 views
1

我正在做一個如此小的網頁,其中包含4個主要的HTML div,它應包含來自SQL數據庫的最後4條NEWS。將數據從SQL Server綁定到標籤

所以我設計了它們,並將它們放在標籤控件和Image控件上。

並將信息從SQL綁定到它們,我使用了(DataView)對象,並使用從0到3的循環我已經獲取了我需要的數據。

但我相信這種方式不是完美的!所以我需要更清晰和有效的東西!

+0

產品名稱是「SQL Server」,而不是「MS SQL」,您應該使用sql-server標籤,而不是「sql」標籤。 「sql」只意味着某種形式的SQL:T-SQL,PL/SQL等。 – 2010-07-07 04:33:29

回答

1

創建頁面上的<asp:repeater ... />控制,並將其綁定到你的SQL數據源。
在數據源中創建適當的Select語句(或使用LINQ或任何你喜歡的)。

佈局Repeater控件像這樣

 <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

@ RPM1984提到了LinqDataSource,他可能是對的。你應該使用LinqDataSource而不是SqlDataSource。 – 2010-07-07 04:38:26

+0

謝謝,效果很好!但我沒有Linq技能。 但我會完全得到他們.. 再次感謝..... – 2010-07-07 22:31:42

+0

請不要忘記標記答案 – 2010-07-07 22:52:14

-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; 
+2

這只是對他當前解決方案的重新描述 – 2010-07-07 04:27:38

+0

編輯完成後,您仍然錯過了這一點。如果他想突然選擇前10名新聞報道呢?他需要再添加6行代碼。數據的限制最好在其職責所在 - 在DAL或數據庫本身中完成。 UI應該是一個簡單的綁定操作。 – RPM1984 2010-07-07 05:11:04

+0

我只是用一個簡單的例子來解決他所問的問題...... :)我同意你關於分離問題的觀點,但提問者的問題是關於這樣一個小的網頁。我認爲這裏沒有涉及DAL /圖層。 – 2010-07-07 05:30:06

0

假設你的數據視圖只包含你想顯示的4個項目,你可能想利用的DataRepeater風格ASP.NET控件之一。

您綁定數據視圖的數據源控件屬性,並調用.DataBind()的頁面或控制(頁呼叫結束所有控件遞歸)

DataRepeater中內則是一種「模板」控制,其內容可能會像

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

你爲什麼要回答「約翰」的問題?用戶是Hashem ;-) – 2010-07-07 04:35:13

+0

所以它是。我把這個問題的評論作者誤解爲問題的作者。對不起哈森姆。 – 2010-07-07 04:45:04

+0

謝謝親愛的回答:) 並沒有關於誤讀的問題:D 知識就是目的吧? – 2010-07-07 22:34:34

1

不知道你用的是什麼版本的.NET,因此可能會影響這個答案,但是......

LinqDataSource將是一個不錯的方法正如你可以說的那樣如果數據級過濾(即, TOP 3),而不是頁面級過濾(在內存循環中)。

+0

謝謝親愛的,我正在使用ASP.NET 4.0 我會製作一些Linq技巧並應用它們...... :) – 2010-07-07 22:32:29

相關問題