这是我在aspx页面中的评分控件。当用户单击星标时,我要更新label3。
<style type="text/css">
.Star {
background-image: url(img/Star.gif);
height: 17px;
width: 17px;
}
.WaitingStar {
background-image: url(img/WaitingStar.gif);
height: 17px;
width: 17px;
}
.FilledStar {
background-image: url(img/FilledStar.gif);
height: 17px;
width: 17px;
}
</style>
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<ajaxToolkit:Rating ID="Rating1" AutoPostBack="true" OnChanged="OnRatingChanged" runat="server"
StarCssClass="Star" WaitingStarCssClass="WaitingStar" EmptyStarCssClass="Star" CurrentRating="2"
FilledStarCssClass="FilledStar">
</ajaxToolkit:Rating>
</ContentTemplate>
</asp:UpdatePanel>
<asp:Label runat="server" ID="label3"></asp:Label>
<asp:Label runat="server" ID="label4" Text="above"></asp:Label>
</div>
我尝试使用Rating1.CurrentRating.ToString(),但Label3上没有任何内容。
protected void OnRatingChanged(object sender, RatingEventArgs e)
{
label3.Text = Rating1.CurrentRating.ToString();
}
我的代码是否错误,或者我可以通过其他方式获取值?我打算从后端获取值,因为稍后我会将其添加到数据库中。请帮忙。谢谢。
答案 0 :(得分:1)
我认为您要寻找的是OnClick()
而不是OnChange()
,因为当用户单击Rate
控件并更改其等级值时,您希望获得{{1}的当前值}控制并显示在标签中,顺便说一句,您应该在desc下方执行以下操作,
在考虑诸如Rate
和UpdatePanel
之类的UpdateMode
的属性之前,可以将ChildrenAsTriggers
的{{1}}设置为UpdateMode="Always" ChildrenAsTriggers="true"
,如果通过设置它们仍然不起作用请执行以下步骤:
1-首先将标签控件移至UpdatePanel1
的{{1}}中
2-然后处理ContentTemplate
的{{1}}事件
3-最后,您必须具有设计模式下的内容:
UpdatePanel
以及Click()
后面的代码:
ajaxToolkit:Rating
这就像一个魅力!!