2

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>

しかし、これはうまくいきません。ビューはリストに表示されていますが、開くと空白のページが表示されます。何らかの理由で、Sharepoint Manager でカスタム ビューをプレビューすると、<ViewData>タグが表示されません。このタグを SharePoint Manager に手動で追加すると、ビューが魔法のように機能し始めます。ただし、何らかの理由で、タグはビューの残りの部分で展開されません。

タグをデプロイする方法について何か提案はありますか?

4

1 に答える 1

0

宣言の何が問題なのかわかりませんが、スキーマに作業定義を追加できました。ここに私の定義があります:

<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>

BaseViewID はスコープ内で一意である必要があり、ContentTypeID は使用しないことに注意してください。また、計算フィールドと計算フィールドはここでは機能しないため、新しい単純なテキスト フィールドを作成し、イベント レシーバーに入力する必要があります。

于 2012-09-11T10:01:35.697 に答える