1

いくつ<div>かのHTML要素を動的に追加したい要素があり<a>ます。その部分はうまく機能しているようです。HTMLは次のとおりです。

<div id="crumbBar" runat="server"/>

私のコードビハインドでは、HTMLアンカーの追加は期待どおりに機能します。ただし、ページがレンダリングされると、IDは「workArea_crumbBar」に変更されます(これはすべてマスターページにあります)。

<div>適切なIDを使用して内に動的に作成しようとしました<div>が、IDの前に「workarea_」を追加しました。

要素のIDに依存する他のコードがあり<div>ます。IISがメイン要素またはネストされた要素のIDを変更しないようにする方法はありますか?

4

1 に答える 1

1

次のように div を変更してみてください。

<div id="crumbBar" runat="server" ClientIDMode="Static" /> 

実際、これは IIS ではなく、ASP.Net Framework の動作です。コントロールはツリーで編成され、最終的なクライアント ID は、すべての祖先 ID を連結した結果になります。

目標は、2 つのコントロール間で競合する Id を回避することです。競合の例は、次のようなユーザー コントロールを作成する場合です<asp:label id="mylbl" runat="server" />。ユーザー コントロールを 2 回インスタンス化すると、この動作がなければ、2 つのコントロールがクライアント側で同じ ID を持つことになります。

つまり、この属性は慎重に使用する必要があり、あいまいな問題が発生する可能性があります。可能であれば、別の解決策を探す必要があります。12 年間 .Net アプリを構築してきましたが、この属性を使用する必要はありません。おそらく代替手段があります。

于 2012-10-15T15:28:31.933 に答える