ID プロパティを割り当てずに TextBox をページに追加すると、レンダリングされたページのコントロール階層に従って、このプロパティが自動的に生成されることに気付きました。
1 つのページで複数回使用するカスタム コントロールを作成しています (したがって、ID のハードコーディングは機能しません)。
ASP.NET には、これらのコントロールごとに「一意の」ID を生成するために使用できるメソッドがありますか?
ID プロパティを割り当てずに TextBox をページに追加すると、レンダリングされたページのコントロール階層に従って、このプロパティが自動的に生成されることに気付きました。
1 つのページで複数回使用するカスタム コントロールを作成しています (したがって、ID のハードコーディングは機能しません)。
ASP.NET には、これらのコントロールごとに「一意の」ID を生成するために使用できるメソッドがありますか?
あなたはある種あなた自身の質問に答えました-それを指定しないでください、そしてそれはあなたのために生成されます。
興味深いのは、ASP.NET4で利用可能な「新しい」について説明しているScottGuthrieのブログへのこの投稿です。ClientIdMode
- AutoID:.NET 3.5のように出力をレンダリングします(互換性のためにctrl00などのプレフィックスをレンダリングする自動生成ID)
- 予測可能(デフォルト) —「ctl00」ID文字列をトリミングし、リスト/コンテナコントロールが子IDを連結する場合(例:id =” ParentControl_ChildControl”)
- 静的—完全なIDネーミングコントロールを開発者に渡します–コントロールのIDとして設定されたものはすべて、レンダリングされるものです(例:id =” JustMyId”)
- Inherit:親コンテナコントロールのネーミング動作モードに従うようにコントロールに指示します
ClientID
必要に応じてorをオーバーライドできますUniqueID
。しかし、使用するClientIDMode
方が良いです。
public override string UniqueID
{
get
{
return "newid";
}
}
public override string ClientID
{
get
{
return "newid";
}
}