1

如果我有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被包裹在 aDIVClientID,如下所示:

<div id="ctl00$ContentPH$UcFoo">
  <input type="text" name="ctl00$ContentPH$UcFoo$TxtFoo" id="ctl00$ContentPH$UcFoo$TxtFoo" />
</div>

但实际上我得到的内容没有DIV标签。所以这里的问题是:如何告诉 ASP.NET 使用自动生成的 ClientID 在 DIV 中呈现我的控件?

4

2 回答 2

4

<div>使用id属性将 UserControl 的内容包装在 a中:

<div id="<%= this.ClientID %>">
    <asp:TextBox runat="server" ID="TxtFoo" />
</div>

请注意,ClientID将包含下划线,而不是美元符号(如您的示例中所示)。

于 2012-04-17T02:25:37.373 回答
1

选项1:

<asp:Panel runat="server">
  <asp:TextBox runat="Server" Id="txtFoo" />
</asp:Panel>

选项 2:

编写一个自定义控件,覆盖 Render 方法并写出您自己的字符串...

HTH。

于 2012-04-17T01:59:21.383 回答