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
}
}