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