なぜASP.NET 4がASPコントロールのプレフィックスctl00
をドロップしたのか誰にも分かりますか?ASP.NET 2.5プレフィックスctl00とASP.NET 4プレフィックスctl00
設定がありませんでしたか?
なぜASP.NET 4がASPコントロールのプレフィックスctl00
をドロップしたのか誰にも分かりますか?ASP.NET 2.5プレフィックスctl00とASP.NET 4プレフィックスctl00
設定がありませんでしたか?
、彼らはクリーナーHTML構文のサポートを導入しました。あなたはそれについてat Scott Gu's blogを読むことができます。クライアントIDのクラシックモデルが必要な場合は、web.configを調整できます。
<configuration>
<system.web>
<pages controlRenderingCompatibilityVersion="3.5" />
これにより、アプリケーションのアップグレードが容易になります。また、ウェブの設定で設定することができControl.ClientIDMode
プロパティを、使用して、コントロールごとに(とページあたり)これを変更することができます
<configuration>
<system.web>
<pages clientIDMode="AutoID|Predictable|Static|Inherit" />
AutoID
は、古典的なASP.NET 2.0モデルとコントロールをレンダリングします。
設定はありませんが、コンテナ内のコントロールのIDをクライアントに変換する方法を簡素化するためのMSによる決定がクライアントに変換されます。
Scott Guthrieが変更を説明するblog postです。その背後にある理由:
クリーン、標準ベースの、ASP.NET 4.0ではCSSフレンドリーマークアップは
私が使用するプレフィックスを決めるには、ASP.NETにまで覚えています。 ハードコードされたid値を持つコントロールを参照するのは悪いことです。
あなたはいつもあなたに適切なIDを生成しますClientIDプロパティを使用する必要がありますそのは、テキストボックスの適切なIDを計算し、label属性にそれを入れて、上の例では
<td class="tmarg10" style="width: 150px">
<label for="<%=txtName.ClientID %>">
Name of the mall group :</label>
</td>
<td class="tmarg10">
<asp:TextBox ID="txtName" runat="server" Columns="90" /> <br />
</td>
を。このようにして、コントロールの同じIDを保持することについて、もう心配する必要はありません。
コントロールのIDに「ct100」プレフィックスを追加したい場合は、Webページにマスターページを追加します。しかし、上記のように、あなたのソースのコントロールIDでハードコードを使用しないようにして、カスタムID生成のためのMetthewのコメントを読んでください
私の場合、おそらく特別ですが、この方法を試してみて、初めてclientIDMode属性を同時に入れてみてください。 –
TypingPanda