我想實現谷歌無法給出答案。我試圖創建一個asp.net用戶控件,當我將內容放入它的開放關閉標記中時,它會讓我仍然能夠通過來自Parent的ID訪問它的內容。這是我想要實現的例子。ASP.NET:可能創建一個包含內部標記內容的UserControl?
用戶控件:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ctrlGENE_CollapsiblePanel.ascx.cs"
Inherits="Controls_GenericsControls_ctrlGENE_CollapsiblePanel" %>
<asp:Panel ID="pnlHeader" CssClass="SnapPanelHeader" runat="server">
<h3>
<asp:Literal ID="litTitle" Text='<%# Text %>' runat="server" />
</h3>
<div class="SnapPanelHeader-img">
<img id="imgOpenClose" src="/images/application/close.jpg" alt="" />
</div>
</asp:Panel>
<asp:PlaceHolder runat="server" ID="pnlContent">
// **HERE I WANT TO INCLUDE THE INSIDE MARKUP**
</asp:PlaceHolder>
<act:CollapsiblePanelExtender runat="server" TargetControlID="pnlContent" ImageControlID="imgOpenClose"
ExpandControlID="imgOpenClose" CollapseControlID="imgOpenClose" CollapsedImage="/images/application/open.jpg"
ExpandedImage="/images/application/close.jpg" CollapsedSize="0" TextLabelID="litTitle">
</act:CollapsiblePanelExtender>
父頁,其中包括控制:
<uc:MyUserControl ID="clpTest" runat="server">
<asp:Literal ID="litText" runat="server" />
</uc:MyUserControl>
喜歡我將能夠在Parent.cs文件來完成:
litText.Text = "Anything";
我知道我們可以實現與ITemplate接口類似的功能,如下所示:http://msdn.microsoft.com/en-us/library/36574bf6.aspx
這將是這樣的:
<uc:MyUserControl ID="clpTest" runat="server">
<ItemTemplate>
<asp:Literal ID="litText" runat="server" />
</ItemTemplate>
</uc:MyUserControl>
但如果我這樣做,我將無法訪問litText的財產,我能達到的唯一途徑是用的FindControl,我想避免。
如果我能以這樣或那樣的方式達到我的目標,任何人都會對此有所暗示?
謝謝
什麼最終目標?這個解決方案可能太複雜,無法滿足您的需求 – 2008-12-17 16:21:42