Terry's blog

Focus on bigdata and cloud.

博客园 首页 新随笔 联系 订阅 管理

功能:
    提供直观化的鼠标操作方式,让用户选择他们对某篇文章或恢复所要给予的等级。
属性:
    MaxRating :最高可以给予的等级高低。没有特别指定时,最多可以到5。
    CurrentRating :"评级"控件初始时的等级高低,默认值是3。
    CssClass : 指定评级控件所套用的样式表。
    StarCssClass :为每个可以被选择的等级(一般来说,就是那个星星图标),指定样式表。
    WaitingStarCssClass :为正通过异步方式保存评级数据的等级,指定样式表。
    FilledStarCssClass :为一个已经被选择的等级,指定样式表。
    EmptyStarCssClass :为一个沿未被选择的等级,指定样式表。
    AutoPostBack :当单击"评级"这个控件时,是否回送。默认不回送。
    OnChanged :在完成评级之后,触发"客户端回调"事件以便执行某一段程序代码。

代码实例:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    
<title>Rating 控件的使用</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<asp:ScriptManager ID="ScriptManager1" runat="server">
    
</asp:ScriptManager>
    
<asp:UpdatePanel ID="UpdatePanel1" runat="server"  UpdateMode="Always" ChildrenAsTriggers="true">
    
<ContentTemplate>
    
<ul>
    
<li>An example of five-star rating:
                        
<br />
                        
<ajaxToolkit:Rating runat="server" ID="Rating1"
                            MaxRating
="5"
                            CurrentRating
="2"
                            CssClass
="ratingStar"
                            StarCssClass
="ratingItem"
                            WaitingStarCssClass
="Saved"
                            FilledStarCssClass
="Filled"
                            EmptyStarCssClass
="Empty" AutoPostBack="True" OnChanged="Rating1_Changed"
                            
>
                        
</ajaxToolkit:Rating>
                        
<asp:Label ID="labelCaption1" runat="server" Text="Selected value: " />
                        
<asp:Label ID="labelValue1" runat="server" Text=""></asp:Label>
                    
</li>
                    
</ul>
                    
</ContentTemplate>
    
</asp:UpdatePanel>
    
    
</form>
</body>
</html>
后台代码:
public partial class Rating : System.Web.UI.Page
{
    
const int RATING1_MIN = 1;
    
const int RATING1_MAX = 5;
 
    
protected void Page_Load(object sender, EventArgs e)
    
{
        
if (!IsPostBack)
        
{
            Evaluate_Rating1(Rating1.CurrentRating);         
        }

    }


    
protected void Rating1_Changed(object sender, AjaxControlToolkit.RatingEventArgs e)
    
{
        Evaluate_Rating1(
int.Parse(e.Value));
    }



    
public void Evaluate_Rating1(int value)
    
{
        labelValue1.Text 
= EvaluateRating(value, Rating1.MaxRating, RATING1_MIN, RATING1_MAX);
    }



    
public static string EvaluateRating(int value, int maximalValue, int minimumRange, int maximumRange)
    
{
        
int stepDelta = (minimumRange == 0? 1 : 0;
        
double delta = (double)(maximumRange - minimumRange) / (maximalValue - 1);
        
double result = delta * value - delta * stepDelta;
        
return FormatResult(result);
    }


    
public static string FormatResult(double value)
    
{
        
return String.Format("{0:g}", value);
    }


}


运行结果:
        
posted on 2007-11-08 10:55  王晓成  阅读(1667)  评论(9编辑  收藏  举报