[英]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.