سؤال

السؤال بسيط للغاية:

كيف يمكنني الحصول على قائمة الأسئلة من استطلاع?

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

المحلول

في Survey قائمة السؤال هو حقل.من أجل تحديد ما إذا كان الحقل هو سؤال أو حقل عادي يمكنك الاستفادة منه SourceID السمة ، في حالة الأسئلة قيمتها ليست http://schemas.microsoft.com/sharepoint/v3:

/// <summary>
/// Get questions in Survey List 
/// </summary>
/// <param name="list"></param>
/// <returns></returns>
public static IEnumerable<SPField> GetSurveyQuestions(SPList list)
{
     return (from SPField field in list.Fields 
                let fieldSchema = XElement.Parse(field.SchemaXml) 
                let sourceId = fieldSchema.Attribute("SourceID").Value 
                where sourceId != "http://schemas.microsoft.com/sharepoint/v3" 
                select field).ToList();
}

الاستخدام

using (var site = new SPSite(siteUrl))
{
    using (var web = site.OpenWeb())
    {
         var list = web.Lists[surveyName];
         var questions = GetSurveyQuestions(list);
         //print questions
         foreach (var question in questions)
         {
            Console.WriteLine(question.Title);
         }          
    }
 }

نصائح أخرى

الإجابة الوحيدة التي وجدتها الآن هي: التحقق من خاصية ShowinVersionHistory لكل حقل!

giveacodicetagpre.

في حالتي، سيقوم هذا بطباعة جميع الأسئلة

هل هناك طريقة أفضل للقيام بذلك؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top