كيف تبدأ بإنشاء جزء ويب مخصص في Visual Studio، وجمع البيانات من القوائم عبر مواقع مختلفة؟

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/94446

سؤال

أولاً، أود أن أقول إنني جديد جدًا في العمل مع Visual Studio 2013 ومع C# أيضًا.

أرغب في إنشاء جزء ويب معين في Visual Studio 2013 لبيئة اختبار SharePoint 2013. يحتاج جزء الويب إلى جلب عناصر القائمة من قوائم إعلانات مختلفة، ويمكن أن تكون قوائم الإعلانات هذه على مواقع مختلفة. أحتاج في الأساس إلى أن أكون قادرًا على عرض محتوى جميع قوائم الإعلانات هذه في قائمة مخصصة واحدة.

فيما يلي مثال على السيناريو:

Subsite A: has a list named "List X"
Subsite B: has a list named "List Y"
Subsite C: has a custom web part that shows items from "List X" and "List Y"

لذلك أريد إنشاء جزء ويب مخصص في Visual Studio سيتم وضعه على الموقع الفرعي C، والذي سيعرض عناصر من قوائم أخرى موجودة في مواقع فرعية أخرى.

يمكنني النشر في بيئة الاختبار الخاصة بنا، ويمكنني إضافة جزء ويب مخصص إلى الصفحة، لذا فإن هذا الأمر يناسبني، وهو أمر رائع، ولكني أحتاج فقط إلى القليل من الدعم.
بعض الاقتراحات حول ما قد أحتاجه (ربما من مربع الأدوات) أو كيف يمكنني الحصول على البيانات من قوائم SharePoint تلك (الاقتراحات، الروابط، أي شيء)، ستكون جميعها موضع ترحيب كبير.

مساعدتكم والوقت هو موضع تقدير كبير!

هل كانت مفيدة؟

المحلول

يمكنك استخدام SPSiteDataQuery للحصول على بيانات القائمة من مواقع فرعية متعددة لنفس مجموعة الموقع.

فيما يلي الكود الأساسي الذي يمكنك البدء به والذي يمكنك استخدامه للحصول على جميع عناصر قائمة الإعلانات من المواقع الفرعية المختلفة:

using (SPSite oSPsite = new SPSite(SPContext.Current.Web.Url))
        {
            using (SPWeb oSPWeb = oSPsite.OpenWeb())
            {
                // Fetch using SPSiteDataQuery
                SPSiteDataQuery query = new SPSiteDataQuery();
                query.Lists = "<Lists ServerTemplate=\"104\" />";//104=List template ID for "Anouncements"
                query.ViewFields = "<FieldRef Name=\"Title\" />";//Add other fields which you want to get.
                query.Query = "";//you can add your caml query if you want to filter the list items returned
                query.Webs = "<Webs Scope=\"SiteCollection\" />";//Scope is set to site collection to get data from all anouncement lists in that site collection.
                DataTable dataTable = oSPWeb.GetSiteData(query);
            }
        }
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top