1

私のホームページには、ユーザーがリストのエントリをすばやく入力できるシンプルなWebパーツが必要です。

リストには、たとえば、タイトル(テキスト)、本文(リッチテキスト)、カテゴリ(ルックアップ)の3つのフィールドがあります。

標準のDataFormWebPartを使用したくないのは、リストの技術的な非表示フィールドも埋めるコードビハインドが少しあるためです(実際には、DataFormWebPartを除外していませんが、使用方法がわかりませんでした。コードビハインド付き)。

そこで、カスタムWebパーツの実装を開始しました。各フィールド入力を手動で処理する必要がないためFormField、レンダリングコントロールを自動的に選択Valueし、正しい形式のプロパティを提供するコントロールを使用し始めました。

<SharePoint:FormField runat="server" id="fldTitle" FieldName="Title" />

このコードでは不十分です。listidを指定する必要があります。

<SharePoint:FormField runat="server" id="fldTitle" FieldName="Title" ListId="{title list guid}" />

これは非常に正しく機能しています。コードでにアクセスしfldTitle.Valueて、ユーザー入力を取得できます。

ただし、アクティブ化できる適切にパッケージ化およびデプロイされた機能にWebパーツを含める必要がありますWebパーツは常に同じリストをターゲットにしますが、リストは機能(ListInstance要素)でもインスタンス化されているため、事前にGUIDを知ることはできません。

私はいくつかの技術を使ってリストIDをその場で設定しようとしましたが、成功しませんでした。

また、SP dllを「反映」して、FormComponentクラスがListFormWebPartによって設定された「コンテキスト」を使用していることを確認しました。

最後に、私の質問は次のとおりです。

  • ホームページにカスタム入力Webパーツを作成する正しい方法ですか(リストカスタムフォームではありません)?
  • FormFieldの動作を維持するにはどうすればよいですか(適切なコントロールを選択し、入力とそのストレージ形式への変換を処理します)?
  • カスタムListFormWebPartを作成する必要がありますか?
  • ControlTemplatesで遊んでもいいですか?

助けてくれてありがとう...私はこの単純なケースに何日も苦労しています...

4

1 に答える 1

0

フォームテンプレートのカスタマイズは、リストフォームをカスタマイズする最も簡単な方法だと思います。カスタムフォームテンプレートはユーザーコントロールとして実装されているため、必要なコードを追加できます。次の記事を参照してください:http: //www.codeproject.com/KB/sharepoint/SharePointListForms.aspx

于 2011-07-26T19:16:17.500 に答える