1

カスタムコントロールテンプレートに問題があります。

私の意図は、リストにNewForm.aspxのカスタムコントロールテンプレートを使用することです。

  1. CustomTemplate.ascxファイルを作成しましたが、これは12/Template/CONTROLTEMPLATES

    <SharePoint:RenderingTemplate ID="CustomListForm" runat="server" >...

  2. カスタムテンプレートを使用するようにリストのschema.xmlファイルを変更しました。

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

ただし、NewForm.aspxページには引き続きデフォルトのビューが表示されます。これは、私のリストテンプレートに基づく新規リストと既存リストの両方に当てはまります。展開の前後でIISを再起動しようとしましたが、これは役に立ちません。

テンプレートの名前を「ListForm」に変更すると、デフォルトのテンプレートが期待どおりに正常に上書きされ、既存のリストと新しいリストで変更を確認できます。

このサイトとGoogleでヘルプを探しましたが、何も見つかりません。誰かがこれに遭遇したことがありますか?

4

4 に答える 4

2

コンテンツ タイプの TemplateName が null または空の文字列であることを確認してください。ContentType で定義された TemplateName は、リスト スキーマで定義された TemplateName をオーバーライドします。

参考までに、すぐに使用できるコンテンツ タイプ「Item」では、NewFormTemplateName が「ListForm」に設定されています。これは、リスト スキーマで定義されたカスタム テンプレート名をオーバーライドします。

于 2009-08-25T01:20:03.890 に答える
0

実行したすべてのステップは正しいです。私は過去に同様のことをし、それを機能させることに成功しました。私が提案するいくつかのことは、次のコードを書いてみて、取得するテンプレートが何であるかを確認することです。

        SPList oList=SPContext.Current.Web.Lists["YourList"];
        Console.WriteLine(oList.Forms[PAGETYPE.PAGE_NEWFORM].TemplateName);

上記のコードが正しいテンプレート名を返している場合は、展開/関連付けに問題はありません。テンプレート自体に問題があります。SharePointログを掘り下げることができます。あなたはより多くの情報を得る必要があります。

于 2009-08-24T12:19:29.170 に答える
0

うーん興味深い点。構文エラーが発生すると、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 ファイルからディレクティブをコピーしたことに注意してください。私のファイルは同じディレクトリにあります。

どうもありがとうございました!

于 2009-08-24T12:38:34.247 に答える
0

CustomTemplate.ascx のどこかにエラーがあると思います - CustomTempate.ascx
のコードを投稿できますか?

于 2009-08-24T11:54:34.507 に答える