Sharepoint 将甘特图视图添加到XML格式的自定义列表模板中&书信电报;ViewData>;不部署

Sharepoint 将甘特图视图添加到XML格式的自定义列表模板中&书信电报;ViewData>;不部署,sharepoint,sharepoint-2010,Sharepoint,Sharepoint 2010,在Sharpoint 2010项目中,我有一个自定义内容类型,它继承了标准任务内容类型,还有一个自定义列表模板,其中包含此内容类型的项(所有操作都是在XML和代码中完成的,而不是“单击通过”) 我想在列表中添加甘特图。我可以使用web界面来完成,但我希望它是代码。因此,我已经手动完成了这项工作,打开了Sharepoint Manager,预览了视图模式,并进行了一些小的但必要的修改,将其复制到我的列表模式中。因此,我最终得到了一个看起来不像这样的视图: <View WebPartZon

在Sharpoint 2010项目中,我有一个自定义内容类型,它继承了标准任务内容类型,还有一个自定义列表模板,其中包含此内容类型的项(所有操作都是在XML和代码中完成的,而不是“单击通过”)

我想在列表中添加甘特图。我可以使用web界面来完成,但我希望它是代码。因此,我已经手动完成了这项工作,打开了Sharepoint Manager,预览了视图模式,并进行了一些小的但必要的修改,将其复制到我的列表模式中。因此,我最终得到了一个看起来不像这样的视图:

  <View WebPartZoneID="Main" Type="GANTT" DisplayName="Gantt Chart" Url="gantt.aspx" Level="1" BaseViewID="1" ContentTypeID="0x" ImageUrl="/_layouts/images/issues.png" SetupPath="pages\viewpage.aspx">
    <Query>
      <OrderBy>
        <FieldRef Name="ID" />
      </OrderBy>
    </Query>
    <ViewFields>
      <FieldRef Name="Attachments" />
      <FieldRef Name="ID" />
      <FieldRef Name="DocIcon" />
      <FieldRef Name="LinkTitle" />
      <FieldRef Name="AssignedTo" />
      <FieldRef Name="Status" />
      <FieldRef Name="Priority" />
      <FieldRef Name="StartDate" />
      <FieldRef Name="DueDate" />
      <FieldRef Name="MyCustomField" />
      <!-- other FieldRefs for my custom fields -->
    </ViewFields>
    <ViewData>
      <FieldRef Name="StartDate" Type="GanttStartDate" />
      <FieldRef Name="DueDate" Type="GanttEndDate" />
      <FieldRef Name="Title" Type="GanttTitle" />
      <FieldRef Name="PercentComplete" Type="GanttPercentComplete" />
      <FieldRef Name="Predecessors" Type="GanttPredecessors" />
    </ViewData>
    <RowLimit Paged="TRUE">30</RowLimit>
    <Aggregations Value="Off" />
  </View>

30
但这不起作用。视图在列表中可见,但当我打开它时,会出现一个空白页。由于某些原因,当我在Sharepoint Manager中预览自定义视图时,
标记不存在。我可以在Sharepoint Manager中手动添加此标记,然后视图神奇地开始工作。但是,由于某些原因,标记没有与视图的其余部分一起部署


关于如何部署标记有什么建议吗?

我不确定您的声明中有什么错误,但我能够将工作定义添加到模式中。这是我的定义:

<View BaseViewID="9" Type="GANTT" WebPartZoneID="Main" DisplayName="Gantt view" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/issues.png" Url="Gantt.aspx" ReqAuth="TRUE">
        <Toolbar Type="Standard" />
        <XslLink Default="TRUE">main.xsl</XslLink>
        <RowLimit Paged="TRUE">30</RowLimit>
        <ViewFields>
          <FieldRef Name="LinkTitle" />
          <FieldRef Name="AssignedTo" />
          <FieldRef Name="TaskGroup" />
          <FieldRef Name="Status" />
          <FieldRef Name="Priority" />
          <FieldRef Name="DueDate" />
          <FieldRef Name="PercentComplete" />
          <FieldRef Name="Predecessors" />
          <FieldRef Name="Comments" />
        </ViewFields>
        <ViewData>
          <FieldRef Name="StartDate" Type="GanttStartDate"/>
          <FieldRef Name="DueDate" Type="GanttEndDate"/>
          <FieldRef Name="Title" Type="GanttTitle"/>
          <FieldRef Name="PercentComplete" Type="GanttPercentComplete"/>
          <FieldRef Name="Predecessors" Type="GanttPredecessors"/>
        </ViewData>
        <ParameterBindings>
          <ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
          <ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
        </ParameterBindings>
        <Query>
          <OrderBy>
            <FieldRef Name="Title"></FieldRef>
          </OrderBy>
        </Query>
      </View>

main.xsl
30
请注意,BaseViewID的作用域应该是唯一的,我不使用ContentTypeID。
此外,计算字段和计算字段在此不起作用,因此您应该创建新的简单文本字段,并在事件接收器中填充它们。

我不确定您的声明中有什么错误,但我能够将工作定义添加到模式中。这是我的定义:

<View BaseViewID="9" Type="GANTT" WebPartZoneID="Main" DisplayName="Gantt view" SetupPath="pages\viewpage.aspx" ImageUrl="/_layouts/images/issues.png" Url="Gantt.aspx" ReqAuth="TRUE">
        <Toolbar Type="Standard" />
        <XslLink Default="TRUE">main.xsl</XslLink>
        <RowLimit Paged="TRUE">30</RowLimit>
        <ViewFields>
          <FieldRef Name="LinkTitle" />
          <FieldRef Name="AssignedTo" />
          <FieldRef Name="TaskGroup" />
          <FieldRef Name="Status" />
          <FieldRef Name="Priority" />
          <FieldRef Name="DueDate" />
          <FieldRef Name="PercentComplete" />
          <FieldRef Name="Predecessors" />
          <FieldRef Name="Comments" />
        </ViewFields>
        <ViewData>
          <FieldRef Name="StartDate" Type="GanttStartDate"/>
          <FieldRef Name="DueDate" Type="GanttEndDate"/>
          <FieldRef Name="Title" Type="GanttTitle"/>
          <FieldRef Name="PercentComplete" Type="GanttPercentComplete"/>
          <FieldRef Name="Predecessors" Type="GanttPredecessors"/>
        </ViewData>
        <ParameterBindings>
          <ParameterBinding Name="NoAnnouncements" Location="Resource(wss,noXinviewofY_LIST)" />
          <ParameterBinding Name="NoAnnouncementsHowTo" Location="Resource(wss,noXinviewofY_DEFAULT)" />
        </ParameterBindings>
        <Query>
          <OrderBy>
            <FieldRef Name="Title"></FieldRef>
          </OrderBy>
        </Query>
      </View>

main.xsl
30
请注意,BaseViewID的作用域应该是唯一的,我不使用ContentTypeID。
此外,计算字段和计算字段在此不起作用,因此您应该创建新的简单文本字段,并在事件接收器中填充它们。

这只是一个随机猜测,但请尝试更改
BaseViewID
属性。我以前也遇到过这样的问题,尽管数字看起来是唯一的,但列表视图在更改之前一直存在问题。我添加了类似的内容,但当我尝试添加列表时,它失败了,出现了“未找到文件”异常。实际上,它对我有效。我从xml中删除了所有计算字段,一切都正常了。此外,我不使用ContentTypeID=“0x”。这只是一个随机猜测,但请尝试更改
BaseViewID
属性。我以前也遇到过这样的问题,尽管数字看起来是唯一的,但列表视图在更改之前一直存在问题。我添加了类似的内容,但当我尝试添加列表时,它失败了,出现了“未找到文件”异常。实际上,它对我有效。我从xml中删除了所有计算字段,一切都正常了。此外,我不使用ContentTypeID=“0x”。