评分星星的控件类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Drawing;
using System.Web.UI.WebControls;
using System.Reflection;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.ComponentModel;
using System.Collections;


namespace Common.PageControl
{
   public  class Ratingstars
    {
        #region Model
        /// <summary>绑定控件
        /// </summary>
        private PlaceHolder _BindControl;
        /// <summary>绑定控件
        /// </summary>
        public PlaceHolder BindControl
        {
            get { return _BindControl; }
            set { _BindControl = value; }
        }
        /// <summary>隐藏的控件ID
        /// </summary>
        private string _divId;
        /// <summary>隐藏的控件ID
        /// </summary>
        public string DivId
        {
            get { return _divId; }
            set { _divId = value; }
        }
        /// <summary>星星数量
        /// </summary>
        private int _size;
        /// <summary>星星数量
        /// </summary>
        public int Size
        {
            get { return _size; }
            set { _size = value; }
        }
        /// <summary>星星的控件ID
        /// </summary>
        private string _dlID;
        /// <summary>星星的控件ID
        /// </summary>
        public string DlId
        {
            get { return _dlID; }
            set { _dlID = value; }
        }
        #endregion

        #region 控件方法

        /// <summary>构造函数
        /// </summary>
        public Ratingstars()
        {

        }

        /// <summary>数据绑定
        /// </summary>
        public void GridDataBind(Page page,string key)
        {
            if (DataProcess.NULL2INT(_size) == 0)
            {
                _size = 5;
            }
            if (DataProcess.NULL2STR(_divId) == "")
            {
                _divId = "Div_" + Guid.NewGuid().ToString();
            }
            if (DataProcess.NULL2STR(_dlID) == "")
            {
                _dlID = "Dl_" + Guid.NewGuid().ToString();
            }
            StringBuilder str=new StringBuilder ();
            str.Append("<p id='" + _dlID + "' class='starWrapper' οnmοuseοver='rate(this,event)' style='float:left'>");
            for (int i = 0; i < _size; i++)
   {
             int sum=i+1;
             str.Append(" <img src='../ClientRes/images/tp.gif' title='" + sum + "分' /> ");
   }
            str.Append(" </p><input type='hidden' name='" + _divId + "' id='" + _divId + "' style='float:left'/>");
            Label tableStr = new Label();
            tableStr.Text =str.ToString();
            _BindControl.Controls.Add(tableStr);
            string gridRegisterJs = GetJsStr(_divId);
            ScriptManager.RegisterStartupScript(page, page.GetType(), key, gridRegisterJs, false);
        }
      #endregion 控件方法

        #region 构建控件JS
        /// <summary>构建Grid注册JS
        /// </summary>
        /// <param name="gridId"></param>
        /// <param name="dataListStr"></param>
        /// <param name="layoutStr"></param>
        /// <returns></returns>
        private string GetJsStr(string name)
        {
            string jsStr = @"<style type='text/css'>
.starWrapper{border:0px solid #FFCC00;padding:5px;width:150px;}
.starWrapper img{cursor:pointer;}
</style>

<script type='text/javascript'>
    function rate(obj, oEvent) {
        //==================
        // 图片地址设置
        //==================
        var imgSrc = '../ClientRes/images/tp.gif'; //没有填色的星星
        var imgSrc_2 = '../ClientRes/images/tp2.gif'; //打分后有颜色的星星
        //---------------------------------------------------------------------------
        if (obj.rateFlag) return;
        var e = oEvent || window.event;
        var target = e.target || e.srcElement;
        var imgArray = obj.getElementsByTagName('img');
        for (var i = 0; i < imgArray.length; i++) {
            imgArray[i]._num = i;
            imgArray[i].onclick = function () {
                if (obj.rateFlag) return;
                obj.rateFlag = true;
                document.getElementById('" + name+@"').value = this._num + 1; //this._num+1这个数字写入到数据库中,作为评分的依据
                // alert(this._num + 1);    
            };
            imgArray[i].onmouseover = function () {
                obj.rateFlag = false;
            }
        }
        var count=0;
        if (target.tagName == 'IMG') {
            for (var j = 0; j < imgArray.length; j++) {
                if (j <= target._num) {
                    imgArray[j].src = imgSrc_2;
                    count++;
                } else {
                    imgArray[j].src = imgSrc;
                }
            }
        } else {
            for (var k = 0; k < imgArray.length; k++) {
                imgArray[k].src = imgSrc;
            }
        }
        if (count==0){
            document.getElementById('" + name + @"').value='';
        }
    }
</script>  ";

            return jsStr;
        }
        #endregion 构建控件JS
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值