如果我有UserControl
这样的话:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="Foo.ascx.cs" Inherits="Foo" %>
<asp:TextBox runat="server" ID="TxtFoo" />
我将其包含在我的页面中,如下所示:
...
<uc:Foo runat="server" ID="UcFoo" />
...
我希望我的UserControl
被DIV
包含在ClientID
内,如下所示:
<div id="ctl00$ContentPH$UcFoo">
<input type="text" name="ctl00$ContentPH$UcFoo$TxtFoo" id="ctl00$ContentPH$UcFoo$TxtFoo" />
</div>
但实际上,我在没有DIV
标记的情况下获取内容。所以这里的问题是:如何告诉ASP.NET使用自动生成的ClientID在DIV中呈现我的控件?
答案 0 :(得分:4)
将UserControl的内容包含在<div>
内id
属性:
<div id="<%= this.ClientID %>">
<asp:TextBox runat="server" ID="TxtFoo" />
</div>
请注意,ClientID
将包含下划线,而不是美元符号(如示例所示)。
答案 1 :(得分:1)
选项1:
<asp:Panel runat="server">
<asp:TextBox runat="Server" Id="txtFoo" />
</asp:Panel>
选项2:
编写自定义控件,覆盖Render方法&amp;写出你自己的字符串......
HTH。