未应用SharePoint自定义控件模板

未应用SharePoint自定义控件模板,sharepoint,sharepoint-2007,controltemplate,Sharepoint,Sharepoint 2007,Controltemplate,我在使用自定义控件模板时遇到问题 我的目的是在NewForm.aspx上为列表使用自定义控件模板 我已经创建了一个CustomTemplate.ascx文件,它被部署到12/Template/CONTROLTEMPLATES … 我已修改列表的schema.xml文件以使用我的自定义模板: 然而,我的NewForm.aspx页面仍然显示默认视图。这适用于基于我的列表模板的新列表和现有列表。我已尝试在部署时重新启动IIS,但这没有帮助 如果我将模板的名称更改为“ListForm”,这将按预期成功

我在使用自定义控件模板时遇到问题

我的目的是在NewForm.aspx上为列表使用自定义控件模板

  • 我已经创建了一个CustomTemplate.ascx文件,它被部署到
    12/Template/CONTROLTEMPLATES

  • 我已修改列表的schema.xml文件以使用我的自定义模板:

  • 然而,我的NewForm.aspx页面仍然显示默认视图。这适用于基于我的列表模板的新列表和现有列表。我已尝试在部署时重新启动IIS,但这没有帮助

    如果我将模板的名称更改为“ListForm”,这将按预期成功覆盖默认模板,并且我可以在现有列表和新列表中看到更改


    我在这个网站和谷歌上寻找帮助,但什么也找不到。以前有人遇到过这个问题吗?

    我猜您在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更改为[无效]因为它已经有了新的想法?