广告位管理

1.新建数据库   广告位表、广告表

广告表:Id,名字(Name,只是给管理员看的,不会显示到界面上),位置标识(PositionName,比如IndexHeader、IndexFooter,ViewThreadSeperator),广告类型(AdType,JavaScript、Image、Link)、JavaScript代码(JavaScriptCode,多行文本)、ImageUrl(广告图片的路径)、ImageTargetUrl(点击图片广告进入的路径)、LinkUrl(点击超链广告进入的路径)、LinkText(超链接的文本)。

精细化的:选择不同的广告类型,显示不同的参数项。(DataItemBound中监听ComboBox的改变事件,然后用JQuery实现hide、show控件,FindControl().ClientId通过JQuery操作)

不用做分页,全部显示。

广告位控件,UserControl。属性:PositionName。用户用的时候将广告位控件拖到aspx的合适位置,设置PositionName的值。随机显示一条广告数据中PositionName等于控件的PositionName的广告。

随机取N条数据,原理: SELECT     TOP (5) Id, WordPattern, IsMod, IsForbid, ReplaceWord, NEWID() AS Expr1 FROM         RP_FilterWords ORDER BY Expr1

代码: select top n * from T_Person order by newid()

2.添加页面  广告管理页面、 后台实现广告的增删改查 (文字广告、图片广告、代码广告)

3新建一个自定义广告控件

自定义广告空间代码:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using RPSite.BLL;
using System.Text;

namespace RPSite.Ctrls
{
    public partial class AdCtrl : System.Web.UI.UserControl
    {
        [DisplayName("广告位编号")]
        public int PositionId { get; set; }

        protected void Page_Load(object sender, EventArgs e)
        {
        //查找返回一个广告对象          把广告放置于相应的Position位置
var ad = new RP_AdBLL().GetRandomAdByPosition(PositionId); //如果为null,则一条广告都没有 if (ad == null) { return; } StringBuilder sb = new StringBuilder(); if (ad.AdType == 1)//文字广告 { sb.Append("<a href='").Append(ad.TextAdUrl) .Append("'>").Append(ad.TextAdText) .Append("</a>"); } else if (ad.AdType == 2)//图片广告 { sb.Append("<a href='").Append(ad.PicAdUrl) .Append("'>").Append("<img src='") .Append(ad.PicAdImgUrl).Append("'/>") .Append("</a>"); } else if (ad.AdType == 3)//代码广告 { sb.Append(ad.CodeAdHTML); } else { sb.Append("AdType错误!!!"); } litCode.Text = sb.ToString(); } } }

在页面中调用广告控件,并给予PositionId参数

 

 

posted @ 2013-06-04 20:18  张国朋  阅读(357)  评论(0编辑  收藏  举报