<%@ Register Src="~/Controls/PressFileDownload.ascx" TagName="pfd" TagPrefix="uc1" %>
<asp:Repeater id="Repeater1" runat="Server" OnItemDataBound="RPTLayer_OnItemDataBound">
<ItemTemplate>
<asp:Label ID="LBLHeader" Runat="server" Visible="false"></asp:Label>
<asp:Image ID="IMGThumb" Runat="server" Visible="false"></asp:Image>
<asp:Label ID="LBLBody" Runat="server" class="layerBody"></asp:Label>
<uc1:pfd ID="pfd1" runat="server" ShowContainerName="false" ParentContentTypeId="55" />
<asp:Literal ID="litLayerLinks" runat="server"></asp:Literal>
</ItemTemplate>
</asp:Repeater>
System.Web.UI.WebControls.Label lbl;
System.Web.UI.WebControls.Literal lit;
System.Web.UI.WebControls.Image img;
System.Web.UI.WebControls.HyperLink hl;
System.Web.UI.UserControl uc;
我需要为转发器中列出的 uc1:pdf 设置 ParentItemID 变量。我想我应该能够通过查看 e.Item 然后以某种方式设置它来找到 uc。我认为这是我缺少某些东西的部分。
uc = (UserControl)e.Item.FindControl("pfd1");
if (uc != null) { uc.Attributes["ParentItemID"] = i.ItemID.ToString(); }
任何想法将不胜感激。
也尝试了类似的结果......当我在我的用户控件(pfd1)中调试时,我试图设置的参数尚未设置。
uc = (UserControl)e.Item.FindControl("pfd1");
if (uc != null)
{
uc.Attributes.Add("ContainerID", _cid.ToString());
uc.Attributes.Add("ParentItemId", i.ItemID.ToString());
}
更新:看起来我的控件没有通过命名空间连接。我已经将父控件(层)和 PressFileDownlad 控件包装在命名空间“MyControls”中。还更新了他们在 aspx 上的 Inherits 引用以读取“MyControls.xxxxx”。我可以在 layer.aspx.cs 的代码中键入“MyControls.Layer”,但无法获得“MyControls.PressFileDownload”