2012-03-15 38 views
0

我試圖創建一個可視的Web部件來顯示最新的5個公告列表項。Custom Share AnnouncementListItem Sharepoint 2010中的可視Web部件

我需要的公告列表項標題顯示爲鏈接和任何附件(僅圖片)來顯示正上方。我計劃每隔15-20分鐘刷新一次網絡部分,以便能夠顯示最新消息。

我不知道如何以及什麼最好的asp控件和頁面設計將顯示這些項目。

這裏是CAML查詢與我的代碼的其餘部分:

using (SPSite oSPsite = new SPSite("http://mySharePointWebApp:Port#/")) 
     { 

      using (SPWeb oSPWeb = oSPsite.OpenWeb()) 
      { 
       oSPWeb.AllowUnsafeUpdates = true; 

       // Fetch the List 
       SPList list = oSPWeb.Lists["Announcements"]; 

       SPQuery spQuery = new SPQuery(); 
       //spQuery.Query = "<Where> <Eq> <FieldRef Name='Title' /> <Value   Type='Text'></Value> </Eq> </Where>"; 
       spQuery.Query = ""; 
       spQuery.RowLimit = 5; 

       // Show item in text box 
       SPListItemCollection oListCollection = list.GetItems(spQuery); 
       foreach (ListItem oListItem in oListCollection) 
       { 
        // **What should I go with here?** 
       } 

      } 
     } 

回答

1

您可以使用像列表框中繼器控制和使用項目模板進行定製。

<asp:ListBox> 
    <item template> 
     <div> 
     <image control/> 
     <text control/> 
     </div> 
    </item template> 
</asp:ListBox> 

要獲得最新的5條公告,請寫入CAML SPQuery以按降序排列的ID獲得前5個項目。 檢查通知是否存在附件。如果確實如此,則通過查看擴展名獲取附件URL並檢查它是否爲圖像類型。

如果圖像存在,則將附件相對url分配給項目模板中的圖像控件。對於沒有圖像的公告,您可以選擇隱藏圖像控件或將URL分配給某個常用圖像。

您還可以使用Linq to SharePoint以獲取最新的5個公告。代碼應該看起來像這樣

var top5Announcements = (From a in siteDataContext.Announcements OrderBy a.id descending select a).Take(5) 
+0

嗨肯感謝您的意見。我真的是新的編程,但想知道你是否可以擴大一點,我將如何實際綁定LINQ或CAML查詢到列表框控件。 – user1266515 2012-03-16 13:02:37

相關問題