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中にラップしたいと思います。DIVClientID

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

しかし、実際にはタグなしでコンテンツを取得していますDIV。ここでの質問は、自動生成された ClientID を使用して DIV 内にコントロールをレンダリングするように ASP.NET に指示するにはどうすればよいですか?

4

2 に答える 2

4

UserControl の内容を属性でラップし<div>ますid

<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 に答える