Sharepoint項目の更新のイベントキャンセルイベントに返editformのページに表示すべき事は何か?
-
20-09-2019 - |
質問
私はイベント受信のためのコンテンツタイプに検証するデータのItemUpdatingイベントです。をキャンセルした場合、イベント(一部のデータのない限り有効とえば、プロパティを設定解除にtrue:
properties.Cancel = true;
properties.ErrorMessage = "...";
SharePointを取り消しを更新イベントokでは、SharePoint標準エラーページ(指定されたメッセージ).唯一の問題は、がんの苦情で、日本には実は非常に有に戻すべきEditFormページの内容が更新されます。
で行うことはあります。の民族植物学庭園と植物またはその実装することができ、自分のエラーページが鳴非常に重いソリューション(理論)の簡単な工程です。
解決
あなたはにErrorMessageで(同様のjavascriptを含んでいる)、出力HTMLコードに試みることができます。しかし、あなたがそうしても、問題はあなたが戻って、ユーザが入力したデータへの安全な方法を持っていないということです。あなたはHTTP / 301リダイレクトを作成し、それは新しいページのロードだ、またはあなたは、クライアントがJavaScriptでhistory.back()
を移動して、ブラウザがページをリロードして作るのいずれか。
これを行う公式の方法は、リストの定義を作成し、リストテンプレートをカスタマイズすることです。次に、編集フォームテンプレートを編集して、必要な数のASP.Net検証コントロールが含まれています。あなたが必要とし、サーバー側のロジックを実装します。この記事では、テクニックを説明します: http://msdn.microsoft.com/en-私たち/ライブラリ/ aa543922.aspxする
編集:特定のContentTypeを編集するためのカスタムコントロールをアタッチするには、あなたのContentTypeを定義にXmlDocumentsセクションを追加します。例えば、このような
<ContentType
..........
<XmlDocuments>
<XmlDocument NamespaceURI="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
<FormTemplates xmlns="http://schemas.microsoft.com/sharepoint/v3/contenttype/forms">
<Display>ContentTypeName_DispForm</Display>
<Edit>ContentTypeName_EditForm</Edit>
<New>ContentTypeName_NewForm</New>
</FormTemplates>
</XmlDocument>
</XmlDocuments>
.......
" そして、あなたにもそのようなブロックが含まれている独自のyoursolution_controltemplates.ascx
ファイルを作成します
<SharePoint:RenderingTemplate ID="ContentTypeName_DispForm" runat="server">
<Template>
<!-- put whatever controls you need here, we typically create a
separate custom control which implements everything-->
</Template>
</SharePoint:RenderingTemplate>
他のヒント
ることができるリダイレクトを利用CopyUtil: http://weblogs.asp.net/jan/archive/2008/02/26/copyutil-aspx-a-little-sharepoint-gem.aspx
link="http://yoursite/_layouts/CopyUtil.aspx?Use=id&Action=dispform&ItemId=X&ListId=X&WebId=X&SiteId=X";
ページです。に応じます。リダイレクト(リンク)
この仕事