sharepoint, объединяющая несколько календарей - PullRequest
0 голосов
/ 25 октября 2011

В моем коде я сохранил все события календаря в массиве, называемом «arlist». Я хотел бы отсортировать массив по дате начала события, чтобы все события были отсортированы. Любые идеи о том, как я могу отсортировать arraylist?

Спасибо! J

foreach (SPWeb web in CurrentSiteCollection.AllWebs)
        {
            SPListCollection weblists = web.Lists;
            try
            {
                SPList Calist = weblists["Calendar"];
                SPQuery Iquery = new SPQuery();
                Iquery.ExpandRecurrence = true;

                Iquery.Query = "<Where><And><Eq><FieldRef Name='IsPublic'/>" +
                   "<Value Type= 'bit'>1</Value></Eq>" +
                   "<DateRangesOverlap><FieldRef Name=\"EventDate\" /><FieldRef  Name=\"EndDate\" /><FieldRef Name=\"RecurrenceID\" />" +
                   "<Value Type=\"DateTime\"><Month /></Value></DateRangesOverlap>             </And></Where>";
                Iquery.CalendarDate = sdate;
                SPListItemCollection gItems = Calist.GetItems(Iquery);
                if (gItems.Count > 0)
                {

                    arlist.Add(gItems);
                    urlist.Add(string.Format("{0}/{1}?   ID=",Calist.ParentWebUrl,Calist.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url));
                }
            }
            catch (Exception)
            { }

1 Ответ

0 голосов
/ 25 октября 2011

Почему бы не использовать универсальную коллекцию вместо ArrayList?

объявление

 List<SPListItem> arlist = new List<SPListItem>();

сделать это

foreach (SPListItem Item in gItems) {
arlist.Add(Item);
}

вместо arlist.Add(gItems);

Наконец, когда вы закончите цикл по всем дочерним сайтам идобавив все события, сортируйте так

arlist.OrderBy((x) => x.Item("EventDate"));

Не забудьте добавить пространство имен system.collections.generic.

...