1

グループ テンプレートとレイアウト テンプレートをプログラムで読み込もうとしていますが、次のエラー メッセージが表示されます。

GroupTemplate が定義されている場合は、ListView 'Listview1' でグループ プレースホルダーを指定する必要があります。ID プロパティを "ListView_GC$groupPlaceHolder1" に設定して、グループ プレースホルダーを指定します。グループ プレースホルダー コントロールは、runat="server" も指定する必要があります。

    protected void Listview1_Init(object sender, EventArgs e)
    {
        System.Diagnostics.Debug.WriteLine("in init");
        Listview1.ItemPlaceholderID = "ListView_UC$itemPlaceHolder1";
        Listview1.GroupPlaceholderID = "ListView_GC$groupPlaceHolder1";
        Listview1.GroupItemCount = 3;
        Listview1.LayoutTemplate = LoadTemplate("~/Controls/ThumbnailView_LayoutTemplate.ascx");
        Listview1.GroupTemplate = LoadTemplate("~/Controls/ThumbnailView_GroupTemplate.ascx");
        Listview1.ItemTemplate = LoadTemplate("~/Controls/ThumbnailView_ItemTemplate.ascx");

    }


    void Listview1_LayoutCreated(object sender, EventArgs e)
    {
       Listview1.Controls.RemoveAt(0);


        Control newLayoutContainer = new Control();

        Listview1.LayoutTemplate.InstantiateIn(newLayoutContainer);
        Listview1.GroupTemplate.InstantiateIn(newLayoutContainer); 
        var userControl = newLayoutContainer.Controls[0];
        var usergControl = newLayoutContainer.Controls[1];

        userControl.ID = "ListView_UC";
        usergControl.ID = "ListView_GC";

        Listview1.Controls.Add(newLayoutContainer);

    }

誰でも助けることができますか?

編集:

コントロールのマークアップ...

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ThumbnailView_GroupTemplate.ascx.cs" Inherits="myproject.Controls.ThumbnailView_GroupTemplate" %>
<tr>
    <asp:PlaceHolder ID="itemPlaceHolder1" runat="server" />
</tr>

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ThumbnailView_LayoutTemplate.ascx.cs" Inherits="myproject.Controls.ThumbnailView_LayoutTemplate" %>
<table>
    <asp:PlaceHolder ID="groupPlaceHolder1" runat="server" />
</table>
4

0 に答える 0