12

ASP.NET サーバー コントロールに特定の ID を設定することはできますか? ID を割り当てて Web フォームを実行するたびに、ID が変わります。

例えば:

<asp:TextBox ID="txtName" runat="server"></asp:TextBox>

これに翻訳されます:

<input id="ct100_ContentPlaceHolder1_txtName" type="text" />

これはマスターページを使用して行うことだと思いますが、そうであれば、コントロールに特定の ID があることを確認するにはどうすればよいですか (javascript の目的で)。自動生成された ID を JavaScript に配置しましたが、機能していますが、最初に割り当てた ID を使用することをお勧めします。これは可能ですか?

(これはバージョン: ASP.NET 3.5 用です)

4

3 に答える 3

27

.NET 4 以降では、クライアント側 ID の外観をより詳細に制御できます (詳細については、この記事を参照してください)。

特定のクライアント側 ID を強制するには、ClientIDMode を static に設定する必要があります。<input>以下は、要素をレンダリングしますid="txtName":

<asp:TextBox ID="txtName" ClientIDMode="static" runat="server"></asp:TextBox>

ただし、これを行う場合、同一のクライアント側 ID を持つ 2 つのコントロールがないようにする必要があります。他のオプションについては、上記のリンク先の記事を確認してください。

于 2010-07-21T22:49:49.500 に答える
4

これは、バージョン 4.0 より前の .NET での Web コントロール ID の方法です。バージョン 4.0 では、クライアント ID が導入されました。これについては、こちらを参照してください。

JS で次のようなものを使用できます。

var something = '<%= txtName.ClientID %>';
于 2010-07-21T22:50:47.833 に答える
2

コード ビハインドでControl.ClientIDプロパティを使用して、コントロール ツリーに追加された後に実際の ID を取得できます。

asp.net webforms の人々による非常に迷惑な選択。

于 2010-07-21T22:50:17.307 に答える