プログラム的に調査から質問を受ける方法
-
29-09-2020 - |
質問
質問は非常に簡単です:
調査から質問のリストを取得する方法は?
解決
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());
}
}
}
.
私の場合、これはすべての質問を印刷します
それをするより良い方法はありますか?
所属していません sharepoint.stackexchange