質問

私の状況では、XSLTLISTVIEWWEBPARTSを使用してWebパーツページを作成しています。 CAMLにカスタムフィルタリング /列をセットアップして、事前定義されたビューを設定する必要があります。したがって、XmldefinitionビットをWebパーツから移動してみて、適切な定義を参照できるようにしました。

以下も試しました。

  • XSLTListViewWebPartを.WebPartファイルとして正しいビューセットアップで保存し、Webパーツギャラリーに追加します。これは、部分が作成されたサイトに最適ですが、他の場所で復元するとすぐに機能します。定義はリセットされます。エクスポートしたときに注意してください。ローカルリストを使用するのではなく、親Relative /listNameリストを使用するオプションを明示的に選択します。

  • WebPartをプログラムでページに追加すると、埋め込みビューを取得することも可能です(ハッキングもあります)。ここでいくつかのものをセットアップすることは可能です(表示されている列のように)。これは理想的ではありません。また、常に戻って戻って、ページングがないBaseTypeID = "0"を表示します。これを変更するオプションは見つかりませんでした。

  • 表示されているデフォルトビュー(私が望んでいない)は、リスト自体のデフォルトビューのように見えました。それで、私はそれをページにウェブパートを追加する前にそれを変更しようとしましたが、それは何も変わりません。

  • 最後に、xmldefinitionlinkというオプションがあります。これは、XMLファイルからカスタムビュー定義をロードすることを約束します。それは私に必要なものなので、私もそれを試しました。どのようにセットアップしても、うまくいきません。エラーはありませんが、結果はありません。これを機能させる方法については、0のリソースが利用可能であるように見えますが、MSDNの記事だけが素晴らしいはずだと言っています(明らかにそうではありません)。

誰かがXSLTLISTVIEWWEBPARTをカスタムビュー定義で再利用した場合は、知識を共有してください。私が実際にそこに着くことができると知っている限り、私はそこにたどり着くためにたくさんのコードやラッパーのクラスを書くことを気にしません。結果はありませんが、これまでに多くの時間を費やしています。

役に立ちましたか?

解決

これをカスタムプロビジョニングプロバイダー(spwebprovisioningingprovider)でコードで行うことを好みます。次の種類のコードはトリックを行う必要があります。

SPWeb web = SPContext.Current.Web;
SPList list = web.GetList("/sites/thesite/doclib");
SPView view = list.Views["TheView"];

string pageUrl = PublishingWeb.GetPagesListName(web) + "/thepage.aspx";
SPFile pageFile = web.GetFile(pageUrl);
pageFile.CheckOut();            
SPLimitedWebPartManager lwpm = pageFile.GetLimitedWebPartManager(PersonalizationScope.Shared);

XsltListViewWebPart wp = new XsltListViewWebPart();
wp.ListId = list.ID;
wp.Title = "Web Part Title";
wp.ChromeType = PartChromeType.TitleOnly;
wp.ViewGuid = view.ID.ToString();
wp.XmlDefinition = view.GetViewXml();
lwpm.AddWebPart(wp, "Header", 1);

pageFile.CheckIn("", SPCheckinType.MinorCheckIn);
pageFile.Publish("");

他のヒント

ブログに投稿のカテゴリのタグクラウドの表示に取り組んでいます。 Content by Query WebPartはLookupMultiフィールドをサポートしていないため、XSLTLISTVIEWWEBPARTを使用しました。ここにステップがあります:

  • 新しい「baseviewid」を使用して、投稿の「schema.xml」にビューを追加する
  • 「xsllink」を「blog.xsl」のコピーに設定します
  • 「Viewfields」に必要な「fieldref」を追加する
  • 「BaseViewID」に一致するテンプレートを追加
  • ページをプロビジョニングするときにWebPartを追加します

    u003CView List="301" BaseViewID="8" WebPartZoneID="Left" WebPartOrder="1">u003C![CDATA[n u003CwebParts>u003CwebPart xmlns="http://schemas.microsoft.com/WebPart/v3">u003CmetaData>u003Ctype name="Microsoft.SharePoint.WebPartPages.XsltListViewWebPart,Microsoft.SharePoint,Version=14.0.0.0,Culture=neutral,PublicKeyToken=71e9bce111e9429c" />u003CimportErrorMessage>このWebパーツをインポートできません。u003C/importErrorMessage>u003C/metaData>u003Cdata>u003Cproperties>u003Cproperty name="AllowConnect" type="bool">本当ですu003C/property>u003Cproperty name="ChromeType" type="chrometype">なしu003C/property>u003Cproperty name="AllowClose" type="bool">偽u003C/property>u003C/properties>u003C/data>u003C/webPart>u003C/webParts>]]>u003C/View>

お役に立てれば。

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top