未应用SharePoint自定义控件模板
我在使用自定义控件模板时遇到问题 我的目的是在NewForm.aspx上为列表使用自定义控件模板未应用SharePoint自定义控件模板,sharepoint,sharepoint-2007,controltemplate,Sharepoint,Sharepoint 2007,Controltemplate,我在使用自定义控件模板时遇到问题 我的目的是在NewForm.aspx上为列表使用自定义控件模板 我已经创建了一个CustomTemplate.ascx文件,它被部署到12/Template/CONTROLTEMPLATES … 我已修改列表的schema.xml文件以使用我的自定义模板: 然而,我的NewForm.aspx页面仍然显示默认视图。这适用于基于我的列表模板的新列表和现有列表。我已尝试在部署时重新启动IIS,但这没有帮助 如果我将模板的名称更改为“ListForm”,这将按预期成功
12/Template/CONTROLTEMPLATES
…
我在这个网站和谷歌上寻找帮助,但什么也找不到。以前有人遇到过这个问题吗?我猜您在CustomTemplate.ascx中的某个地方遇到了错误-
您可以发布CustomTempate.ascx的代码吗?您执行的所有步骤都是正确的。我过去也做过类似的事情,并且成功地让它工作起来。我建议您尝试编写以下代码,看看您得到的模板是什么
SPList oList=SPContext.Current.Web.Lists["YourList"];
Console.WriteLine(oList.Forms[PAGETYPE.PAGE_NEWFORM].TemplateName);
如果上述代码返回正确的模板名称,则部署/关联没有问题。模板本身有问题。您可以深入查看SharePoint日志。你应该得到更多的信息。Hmmm有趣的一点。您是否希望语法错误导致SharePoint返回默认值,而不是抛出错误 以下是CustomTemplate.ascx文件中的代码:
<%@ Control Language="C#" AutoEventWireup="false" %>
<%@Assembly Name="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
<%@Register TagPrefix="SharePoint" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" namespace="Microsoft.SharePoint.WebControls"%>
<%@Register TagPrefix="SPHttpUtility" Assembly="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" namespace="Microsoft.SharePoint.Utilities"%>
<%@ Register TagPrefix="wssuc" TagName="ToolBar" src="~/_controltemplates/ToolBar.ascx" %>
<%@ Register TagPrefix="wssuc" TagName="ToolBarButton" src="~/_controltemplates/ToolBarButton.ascx" %>
<SharePoint:RenderingTemplate ID="CustomListForm" runat="server">
<Template>
Test content
</Template>
</SharePoint:RenderingTemplate>
测试内容
注意,我从DefaultTemplates.ascx文件复制了这些指令。我的文件位于同一目录中
非常感谢你的帮助 确保内容类型中的TemplateName为null或空字符串。ContentType中定义的TemplateName将覆盖列表架构中定义的任何TemplateName
仅供参考,开箱即用内容类型“Item”将NewFormTemplateName设置为“ListForm”,这将覆盖列表架构中定义的任何自定义模板名称。Ok,在尝试查看NewForm.aspx页面后检查日志,并写入以下内容:高警告:无法将FormContext.FormMode更改为[无效]因为它已经有了新的想法?