質問

質問は非常に簡単です:

調査から質問のリストを取得する方法は?

役に立ちましたか?

解決

Surveyリストのリスト質問はフィールドです。フィールドがQUESTAGCODE属性を使用することができるかどうかを判断するために、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プロパティを確認してください!

using (SPSite sito = new SPSite("URL"))
        {
            using (SPWeb web = sito.OpenWeb())
            {
               var list = web.Lists["SURVEY LIST NAME"];

                foreach(var Field in list.Fields.Cast<SPField>().Where(x => x.ShowInVersionHistory))
                {
                    Console.WriteLine(Field.ToString());
                }
          }
   }
.

私の場合、これはすべての質問を印刷します

それをするより良い方法はありますか?

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top