代码之家  ›  专栏  ›  技术社区  ›  paul

Sharepoint调查:从列表web服务获取调查信息时,如何识别问题字段?

  •  3
  • paul  · 技术社区  · 16 年前

    网络服务 并显示调查中包含的问题。

    场 其中一些是调查中的问题。其他字段包含其他信息,如作者、上次更改等。

    我怎样才能挑出问题?我原以为所有非问题都会隐藏起来,但事实并非如此。

    这是我目前的代码。它返回大约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 回复  |  直到 16 年前
        1
  •  1
  •   Karl    14 年前

    问题字段的属性“SourceID”是一个GUID。 所有其他字段的SourceID均为“http://schema..."

        2
  •  0
  •   naivists    16 年前

    我认为最简单的解决办法是找出 InternalName ,将它们放入一个数组中,然后检查字段名是否在该数组中。例如,你很可能会有“标题”、“创作”、“作者”等等。此页面将为您提供一些提示,其中哪些字段是内置的: http://www.johnholliday.net/downloads/fieldswss.htm

        3
  •  0
  •   Ryan    16 年前

    SPField.Group 确定字段是“基本”列(如ID/Author等)还是自定义列(将作为问题或页面分隔符)。

    页面分隔符是一个特殊的 field type 所以你应该可以通过

    if (SPField.Type == SPFieldTypes.PageSeperator)
    
        4
  •  0
  •   Andrey    13 年前

    它似乎将所有新列(而不是来自父内容类型的列)都视为问题。 只检索问题的一种方法是获取“概述”视图中的所有字段(作者列除外);另一种方法是获取并非来自父内容类型的所有字段,即新字段。

    推荐文章