1

ページのカスタムの新しいフォームを作成し、スキーマ ファイルで次のことを行いました。

<Form Type="NewForm" Url="NewForm.aspx" WebPartZoneID="Main" />

カスタムフォームを探します。作成した新しいクライアントでは正常に機能しますが、システムに既にあるクライアントはまだ標準の新しいフォームを指しています

<Form Type="NewForm" Url="NewForm.aspx" SetupPath="pages\form.aspx" WebPartZoneID="Main" /> 

だから私はこれを行うことで、古いものにカスタムフォームを見てもらうためのアップグレードルールを作成しようとしました:

var list = web.TryGetList("Client Programs");
list.DefaultNewFormUrl = "NewForm.aspx";
list.Update();

しかし、これでは何も起こらないと感じています。サイト設定ページから古いデータを新しいカスタム フォームにポイントする方法はありますか、またはこれを機能させるためにアップグレード ルールに何を追加/変更する必要がありますか?

アップデート

また、フォームのプロパティで、フォームのハイブを検索するように変更し、要素ファイルにしたことにも言及する必要があります。

ありがとう

4

1 に答える 1

1

既存のアイテムは、newform.aspx からではなく、EditForm.aspx によって編集されます。

newform.aspx を複製して、editform.aspx という名前を付ける必要があります (displayform.aspx を作成できます)。

<Forms>
  <Form Type="DisplayForm" Url="DispForm.aspx" SetupPath="features\$SharePoint.Feature.DeploymentPath$\YourProject\CustomDisplay.aspx" UseLegacyForm="True" WebPartZoneID="Main" />
  <Form Type="EditForm" Url="EditForm.aspx" SetupPath="features\$SharePoint.Feature.DeploymentPath$\YourProject\CustomEdit.aspx" UseLegacyForm="True" WebPartZoneID="Main"  />
  <Form Type="NewForm" Url="NewForm.aspx" SetupPath="features\$SharePoint.Feature.DeploymentPath$\YourProject\CustomNew.aspx" UseLegacyForm="True" WebPartZoneID="Main" />
</Forms>

フォームごとに、各 SharePoint フォーム フィールドに正しいコントロール モードでタグを付ける必要があります。

新しいフォーム:

<SharePoint:FormField runat="server" ID="field_YourFieldName" ControlMode="New" FieldName="YourFieldName" />                                

編集フォーム:

<SharePoint:FormField runat="server" ID="field_YourFieldName" ControlMode="Edit"                                                    FieldName="YourFieldName" />

表示形式 :

<SharePoint:FormField runat="server" ID="field_YourFieldName" ControlMode="Display"                                                        FieldName="YourFieldName" />
于 2013-02-26T11:44:55.233 に答える