我为页面构建了一个自定义新表单,在模式文件中我执行了以下操作:
<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();
但我觉得这不会做任何事情,是否有某种方法可以通过网站设置页面将旧数据指向新的自定义表单,或者我需要在升级规则中添加/更改哪些内容才能获得这工作吗?
更新
我还应该提一下,在表单的属性中,我已将其更改为在表单的hive中查找并使其成为元素文件。
由于
答案 0 :(得分:1)
现有项目由EditForm.aspx编辑,而不是来自newform.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" />