1

サイトのバナーを制御する単純なサーバー コントロールを作成しようとしています。

次のようなものにする必要があります。

<Banners:mng_bnr ID="Upper_bnr / aside_bnr / bottom_bnr / etc" runat="server" />

そして、コントロールは次のようになります。

    <%@ Control Language="C#" %>

<script runat="server">

 protected void Page_Load(object sender, EventArgs e)
 {


 switch(which_banner)
 {
 case which_banner.upper_banner_wide: 
<!-- Ad code -->
 <script type="text/javascript"><!--
JS code
 </script>
 <script type="text/javascript"

 </script>
 <!-- *** Ad Code *** --> 
break;

case which_banner.upper_banner_small:
 <!-- Ad code -->
 <script type="text/javascript"><!--
JS code
 </script>
 <script type="text/javascript"

 </script>
 <!-- *** Ad Code *** --> 
break;

case which_banner.aside_336_280_top:

 <!-- Ad code -->
 <script type="text/javascript"><!--
JS code
 </script>
 <script type="text/javascript"

 </script>
 <!-- *** Ad Code *** -->

しかし、各コントロールのIDを取得して処理する方法がわかりません(各ページに約5〜6個のコントロールがあり、それぞれが独自のIDを持っている必要があります-これは異なるバナーを意味します)

どうもありがとう。

4

1 に答える 1

1

この投稿は漠然としすぎています。あなたが求めているのは、バナー コントロールの ID を親ページからこのコントロールに渡す方法だと思います。その場合、次のようにします。

 private string _bannerId = string.Empty;
 public string BannerId
 {
      get { return _bannerId; }
      set { _bannerId = value; }
 }

次に、スイッチは次のようになります。

 switch(_bannerId)
 {
     case "banner1":
     break;

     case "banner2":
     break; 
 }

次に、親ページで次のようにします。

 <Banners:mng_bnr BannerId="Upper_bnr" runat="server" />

複数のバナー ID を渡したい場合は、コレクションを使用するか、各バナーにプロパティを提供することをお勧めしますが、これは何を達成しようとしているかによって異なります。

お役に立てれば。

- 編集 -

必要なコードを書き出すという点では、それを行う方法はたくさんあります。たとえば、次のようなことができます。

switch(_bannerId)
{
 case "banner1":
     scriptLiteral.Text = "<script>...</script>";
 break;

 case "banner2":
     scriptLiteral.Text = "<script>...</script>";
 break; 
}

そして、あなたのコントロールで、あなたは持っているでしょう

<asp:Literal id="scriptLiteral" runat="server" />

ただし、おそらくRegisterClientScriptBlockを使用します。

于 2012-08-08T18:02:13.470 に答える