Пользовательская визуальная веб-часть AnnouncementListItem в Sharepoint 2010 - PullRequest
0 голосов
/ 15 марта 2012

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

Мне нужно, чтобы заголовок элемента списка объявлений отображался в виде ссылки, а любые вложения (только изображения) отображались прямо над ним. Я планирую обновлять веб-часть каждые 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 Ответ

1 голос
/ 16 марта 2012

Вы можете использовать элемент управления повторителем, такой как список, и настроить его, используя шаблоны элементов.

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

Чтобы получить последние 5 объявлений, напишите CAML SPQuery, чтобы получить 5 лучших элементов по идентификатору в порядке убывания. Проверьте, существует ли вложение для объявления. Если это так, то получите URL-адрес вложения и проверьте, является ли это тип изображения, посмотрев на расширение.

Если изображение существует, назначьте относительный URL-адрес вложения для элемента управления изображением в шаблоне элемента. Для объявлений без изображения вы можете либо скрыть элемент управления изображением, либо назначить URL некоторому общему изображению.

Вы также можете использовать Linq to SharePoint , чтобы получать последние 5 объявлений. Код должен выглядеть следующим образом

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