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