.Netは、自分のページに要素IDを追加することで親切に要素IDを変更しています。私が自分のサイトにIDを複製するのを手伝ってくれるように助けようとしているMicrosoftに感謝している限り、私は自分でそれを管理できると思う。誰も私にこれを防ぐ方法を教えてもらえますか? ありがとうございます。.Net要素IDを変更します。
答えて
あなたがする必要があります。私たちは、IDの生成がどのように行われるかと見つける方法を制御することができるように、コンテナコントロールの名前付けControl.IDプロパティ
オーバーライドからControl.UniqueIDプロパティを切り離す
オーバーライド通常のコントロールの動作を制御
http://forums.asp.net/t/1394822.aspx
ここでは、かすかな心のための解決策はありません。私はそれが好きです! – Praesagus
現在のバージョンのASP.NETではこれを防ぐことはできません - the next version will allow you to do thisおそらくASP.NET MVCはあなたのための良い選択ですか?
非常に興味深い、私はこれを確認する必要があります。 – Praesagus
これはaspnetの動作方法です。コントロールは、この理由のためにコードの背後で使用するためのclientidメソッドを提供します。
jsのオブジェクトを参照する場合は、clientidを挿入するか、クラスまたは他の属性を使用できます。
編集:これが唯一のASP.NETコントロールに適用されること注意。 HTMLコントロールを使用する場合、指定されたIDは保持されます。あなたのコードの後ろにrunat=server
属性を追加することでそれらにアクセスすることもできます。明らかに、これらのコントロールはviewstateなどでwebformsモデルを破壊しますが、それらはあなたに望ましい機能を与えます。
もちろん私は心配してから間違っているかもしれません...(もし私がいればコメントしてください)!
質問の要素の1つは、実際には、htmlで指定されたidを持つhtmlcontrolです。それにもかかわらず.netまだ私の指定されたIDを変更します。 – Praesagus
おかげで、ありがとうございます –
サーバー側では何も使用しないでください。
これはASP.NETシステムの固有の側面であり、.NET Serverコントロールを使用する方法はなく、接頭辞を付加していません。
クライアント側の名前にアクセスするには、myControl.ClientIDプロパティを使用します。
INamingContainerインターフェイスを持つコントロールでは、コントロールの階層が追加され、複数のコントロールがページ上に矛盾することなく配置されます。クライアントの要素のIDを知りたい場合は、コントロールのClientIDプロパティを使用する必要があります。
- 1. 変更HTML要素
- 2. .Net CodeBase要素
あなたは以下の回答からわかるように、それを行うための良い方法はありません。そして、あなたが1つを見つけたら、あなたは基本的に.Netの方法のすべてのステップと戦っていることを覚えておいてください。それは後に他の問題を引き起こすかもしれません。なぜあなたはこれをしたいのですか? –
私はあなたが言っていることを知っています。あなたの開発の側面を制御するために戦わなければならないのはイライラしなければなりません。 – Praesagus