3

SPFieldCollection の AddFieldAsXML メソッドを使用して、新しいフィールドをリストに追加しています。メソッドは問題なく正常に実行されます。リストを表示すると、列ヘッダーが表示されます。ただし、値が列に表示されることはありません。リストに追加された後のフィールドは次のようになります。この xml は、 http://tw-s1-m4400-007:4016/_vti_bin/owssvr.dll?Cmd=ExportList&List= {1F87433F-50E1-46C5-A138-00E1CF7E5801}を使用して派生したリスト スキーマから抜粋したものです。

このコードは 2007 年にはうまく機能しますが、2010 年には機能しません。

<Field ID="{e24ccb96-35fd-44e5-b7d1-4150dbbc9a64}" Type="Computed" ReadOnly="TRUE"
   Name="My_x0020_Status" DisplayName="MyStatus" ShowInEditForm="TRUE" ClassInfo="Icon"   
AuthoringInfo="(My status)" SourceID="http://schemas.microsoft.com/sharepoint/v3"       
StaticName="MyStatus" FromBaseType="TRUE">  
 <FieldRefs>
  <FieldRef Name="ID" /> 
  <FieldRef Name="Title" /> 
 </FieldRefs>
 <DisplayPattern>
 <HTML>
 <![CDATA[ <a href="form.htm?ID="
  ]]> 
  </HTML>
  <Column Name="ID" /> 
 <HTML>
 <![CDATA[ ">
  ]]> 
  </HTML>
  <Column Name="Title" /> 
 <HTML>
 <![CDATA[ </a>
  ]]> 
  </HTML>
  </DisplayPattern>
</Field>
4

4 に答える 4

2

このリンクは、この問題を解決するのに多くの助けを提供しました:

http://social.technet.microsoft.com/Forums/en/sharepoint2010customization/thread/ef0d1d22-47ff-416c-becd-13d48de80e4d

基本的に、表示パターン フィールドは C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS\XSL\fldtypes.xsl ファイルで定義されます。

カスタム フィールド表示を定義する例として使用できる fldtypes_ratings.xsl というファイルがあります。

独自の xsl ファイル (つまり、fldtypes_myfile.xsl) を作成して、独自のカスタム表示を定義できます。

これが私のコンテンツのサンプルです:

<xsl:stylesheet xmlns:x="http://www.w3.org/2001/XMLSchema" 
xmlns:d="http://schemas.microsoft.com/sharepoint/dsp" version="1.0" exclude-result-
prefixes="xsl msxsl ddwrt" ns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime" 
xmlns:asp="http://schemas.microsoft.com/ASPNET/20" 
xmlns:__designer="http://schemas.microsoft.com/WebParts/v2/DataView/designer" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" 
xmlns:SharePoint="Microsoft.SharePoint.WebControls" xmlns:ddwrt2="urn:frontpage:internal">

<xsl:template match="FieldRef[@Name='MyCustomField']" mode="Computed_body">
    <xsl:param name="thisNode" select="."/>
      <SPAN class="mystuff-content-item" style="Width:100%;text-align:center">
          <SPAN class='mystuff-socialized-status mystuff-socialized-status-unknown'></SPAN>
          <SPAN class="mystuff-content-object-type" style="display:none">
               MyContent
          </SPAN>
          <SPAN class="mystuff-content-followed" style="display:none">0</SPAN>
          <SPAN class="mystuff-content-name" style="display:none"></SPAN>
          <SPAN class="mystuff-content-id" style="display:none">
            <xsl:value-of select="$List" />
            <xsl:text>|</xsl:text>
            <xsl:value-of select="$thisNode/@ID" />
          </SPAN>
      </SPAN>
    </xsl:template>

</xsl:stylesheet>

それが役立つことを願っています!

于 2010-03-04T20:19:39.043 に答える
1

これに関する私のブログをここで参照してください:http ://www.threewill.com/2012/07/computed-fields-in-sp-2010/ 。うまくいけば、これにより、SP2010で計算フィールドを実行する方法が明確になります。

于 2012-07-18T13:28:25.647 に答える
1

これらの記事を参照する点について私は混乱しています - どちらも「SharePoint Foundation に同梱されている 2 つのレガシー フィールド タイプには、FLDTYPES.XML の RenderPattern の DisplayPattern タイプがありません: (1) ContentTypeId フィールドは決して表示されません。 (2) 計算フィールドは、表示される各リストの schema.xml 内の Field 要素の DisplayPattern 要素によって、リスト ビューおよび表示モードでレンダリングされます。

元の質問は「計算済み」フィールドとして明確に定義されており、リンクされた記事によると、レンダーパターンに fldttypes.xml を使用せず、元の質問が投稿されたのと同じように DisplayPattern 要素を代わりに使用します。2010 で DisplayPattern がどのように機能するかについての参照を投稿すると役立ちます。ドキュメントには、それが機能することは明確に記載されていますが、どのように機能するかは決して述べられていないためです。

于 2012-06-25T20:26:23.587 に答える
0

2007 年からのこのカスタマイズ方法は、2010 年のフィールドのレンダリングの変更によって廃止されました。詳細については、RenderPatternの SDK エントリのメモを参照してください。

重要!このトピックでは、リスト ビュー、表示フォーム、編集フォーム、および新規フォームでカスタム フィールド タイプをレンダリングする現在は廃止された方法で使用されたマークアップについて説明します。以前のバージョンの SharePoint Foundation に対して最初に開発されたカスタム フィールド タイプをデバッグしているユーザーを支援するためにのみ提供されています。推奨される方法については、「方法: フィールド レンダリング テンプレートを作成する」および「方法: カスタム フィールド タイプを作成する」を参照してください。RenderPattern マークアップでレンダリングが定義されているカスタム フィールドは、フォーム上で適切にレンダリングされます。ただし、SharePoint Foundation は既定で XSLT スタイルシートを使用して、リスト ビューのレンダリングが RenderPattern で定義されている従来のカスタム フィールドであっても、リスト ビューのフィールドをレンダリングします。このようなフィールドのレンダリングを有効にするには、

于 2010-09-29T16:11:53.837 に答える