1

ID プロパティを割り当てずに TextBox をページに追加すると、レンダリングされたページのコントロール階層に従って、このプロパティが自動的に生成されることに気付きました。

1 つのページで複数回使用するカスタム コントロールを作成しています (したがって、ID のハードコーディングは機能しません)。

ASP.NET には、これらのコントロールごとに「一意の」ID を生成するために使用できるメソッドがありますか?

4

2 に答える 2

3

あなたはある種あなた自身の質問に答えました-それを指定しないでください、そしてそれはあなたのために生成されます。

興味深いのは、ASP.NET4で利用可能な「新しい」について説明しているScottGuthrieのブログへのこの投稿です。ClientIdMode

  • AutoID:.NET 3.5のように出力をレンダリングします(互換性のためにctrl00などのプレフィックスをレンダリングする自動生成ID)
  • 予測可能(デフォルト) —「ctl00」ID文字列をトリミングし、リスト/コンテナコントロールが子IDを連結する場合(例:id =” ParentControl_ChildControl”)
  • 静的—完全なIDネーミングコントロールを開発者に渡します–コントロールのIDとして設定されたものはすべて、レンダリングされるものです(例:id =” JustMyId”)
  • Inherit:親コンテナコントロールのネーミング動作モードに従うようにコントロールに指示します
于 2012-05-29T14:41:08.370 に答える
0

ClientID必要に応じてorをオーバーライドできますUniqueID。しかし、使用するClientIDMode方が良いです。

public override string UniqueID
{
    get
    {
        return "newid";
    }
}

public override string ClientID
{
    get

    {
        return "newid";
    }
}
于 2012-05-29T14:46:13.560 に答える