1

ASP.NET Webフォームでは、コントロールがページにレンダリングされるときに、衝突が発生しないように、必要に応じて各フィールドのIDがctrl01で変更されます(別名myFieldはctrl01 $ myFieldなどになります)。

アルゴリズム自体がどのように機能するかについての詳細はどこにあるのでしょうか、それともどこにあるのでしょうか。INamingContainerはこれと関係があると思いますが、残念ながら、レンダリングされたフィールド名を実際に決定する部分は見つかりません。

どんな助けでも素晴らしいでしょう!

4

4 に答える 4

1

これは、Webページの階層レイアウトに基づいています。ただし、ClientIdプロパティを使用してこれを制御できます。

したがって、ユーザーコントロールのテキストボックスにはctrl01#textboxnameという名前が付けられます(投稿で言ったように)

于 2011-04-09T19:44:40.023 に答える
1

あなたはおそらくこのmsdnの記事を探しています。

于 2011-04-09T19:49:57.200 に答える
1

それはそれ自身の名前をあなたの元のIDと連結します。

ASP.NET 4では、この連結を抑制し、次の3つの方法で独自のIDを保持できます。

  • 各サーバーコントロールには、次のclientIdModeように設定できると呼ばれる属性があります。Static
  • clientIdModeページ上のすべてのコントロールに影響を与えるページディレクティブを設定することもできます。
  • web.configまたは、すべてのページのすべてのコントロールに影響を与えるように設定できます。(ページまたはコントロールが別の設定に設定されている場合を除くclientIdMode

注:AJAX Control Toolkitを使用している場合は、ツールキットの一部であるこれらのコントロールを次のように設定する必要がありますclientIdModePredictive

于 2011-04-09T20:02:20.447 に答える
0

他の回答とは別に、ASP .NET 4を使用している場合は、より詳細に 制御できます。

これらのWebページをご覧ください

http://www.west-wind.com/weblog/posts/54760.aspx

http://weblogs.asp.net/asptest/archive/2009/01/06/asp-net-4-0-clientid-overview.aspx

于 2011-04-09T19:54:36.717 に答える