0

ページのユーザーコントロールへのリンクがページの上部に配置される「ユーザーコントロールメニュー」を作成しようとしています。これにより、ページにいくつかのユーザーコントロールを配置し、ユーザーがあまりスクロールせずにページのそのセクションにジャンプできるようになります。これを行うために、各ユーザー コントロールをフォルダー (usercontrols) に配置し、各コントロールに Description プロパティを指定しました ( <%@ Control Language="C#" Description = "Vehicles" .... %>)。

私の質問は、この説明に動的にアクセスするにはどうすればよいですか? この説明をメニューのリンクとして使用したいと考えています。これまでのところ、ASP.usercontrols タイプのコントロールを ControlCollection で検索する foreach がページにありました。もしそうなら、その属性にアクセスしてその説明プロパティを取得できると思います。これどうやってするの?(「ユーザーコントロールメニュー」を実現するためのより良い方法にもオープンですが、それは別の質問かもしれません。)使用する必要があります((System.Web.UI.UserControl)mydynamiccontrol).Attributes.Keysか?

4

1 に答える 1

1

コレクションを反復処理して、switch またはいくつかの if ステートメントを実行できます

すべてのユーザー コントロールにインターフェイスまたは抽象基本クラスを用意することをお勧めします。

public abstract class MyBaseClass : UserControl
{
  public abstract string MyDescription {get;}
}

public MyUserControlA : MyBaseClass
{
  public string MyDescription {get {return "my description";}}
}

public MyUserControlB : MyBaseClass
{
  public string MyDescription {get {return "my other description";}}
}

次に、同じようにそれらをループできます。

foreach ...
if (mydynamiccontrol is MyBaseClass)
{
    Response.Write(((MyBaseClass)mydynamiccontrol).MyDescription);
}

お役に立てれば

于 2010-03-18T12:36:06.130 に答える