3

Lists Web サービスを介して調査情報にアクセスし、調査に含まれる質問を表示したいと考えています。

結果には多数のFieldノードが含まれており、そのうちのいくつかは調査の質問です。他のフィールドには、作成者、最終更新日などの情報が含まれています。

質問の選び方は?質問以外はすべて非表示になると思っていましたが、そうではありません。

これが現時点での私のコードです。約 16 項目を返します。アンケートには6つの質問があります...

// read question definitions
string[] HandleTypes = new string[] { "Number", "DateTime", "Text", "Choice", "GridChoice", "Boolean" };
var query = from n in node.Descendants(ns+"Field")
            where (n.Attribute("Hidden") == null || n.Attribute("Hidden").Value.ToLower() == "true")
            && (n.Attribute("Type") != null && HandleTypes.Contains(n.Attribute("Type").Value))
            select new Question(n.Attribute("ID").Value)
            {
                Text = n.Attribute("DisplayName").Value,
                QuestionType = n.Attribute("Type").Value,
                Element = n
            };

アイデアはありますか?

4

4 に答える 4

1

質問フィールドの属性「SourceID」は GUID です。他のすべてのフィールドには、「http://schema...」の SourceID があります。

于 2012-07-25T06:18:30.893 に答える
0

SPField.Groupを使用して、フィールドが ID/作成者などの「ベース」列であるか、質問やページの区切りとなるカスタム列であるかを調べることができます。

ページセパレーターは特定のフィールドタイプであるため、それらを取得できるはずです

if (SPField.Type == SPFieldTypes.PageSeperator)
于 2010-03-16T10:48:25.993 に答える
0

最も簡単な回避策はInternalName、組み込みフィールドの s を見つけて配列に入れ、フィールド名がその配列にあるかどうかを確認することだと思います。たとえば、おそらく「タイトル」、「作成者」、「作成者」などがあります。このページには、どのフィールドが組み込まれているかについてのヒントがいくつかあります: http://www.johnholliday.net/downloads/fieldswss.htm

于 2010-03-16T10:00:38.833 に答える
0

すべての新しい列 (親コンテンツ タイプからのものではない) を質問として扱っているようです。質問のみを取得する 1 つの方法は、[概要] ビューにあるすべてのフィールドを取得することです ([作成者] 列を除く)。もう 1 つの方法は、親コンテンツ タイプに由来しないすべてのフィールド、つまり新しいフィールドを取得することです。

于 2013-09-16T17:25:25.960 に答える