簡體   English   中英

如何在Server Control / C#中獲取ID?

[英]How to get ID in Server Control / C#?

我嘗試編寫一個簡單的服務器控件來控制網站中的橫幅廣告。

應該是這樣的:

<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-表示不同的橫幅)

非常感謝。

這個帖子太含糊了。 認為您要問的是如何將橫幅廣告控件的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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM