将 Ajax 星评级值检索到 Asp.net 后端
Retrieve Ajax star rating value to Asp.net backend
这是我在 aspx 页面中的评级控件。当用户点击星星时,我想更新标签3。
<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();
}
是我的代码有误还是可以通过其他方式获取?我打算从后端获取值,因为稍后我会将其添加到我的数据库中。请帮忙。谢谢。
我认为您要查找的是 OnClick()
而不是 OnChange()
,因为当用户单击 Rate
控件并更改其评分值时,您希望获得 [=] 的当前值14=] 控制并在标签中显示它,顺便说一句,你应该按照下面的说明进行操作,
在做任何事情之前,请考虑 UpdatePanel
的属性,例如 UpdateMode
和 ChildrenAsTriggers
,您可以将它们设置为 UpdateMode="Always" ChildrenAsTriggers="true"
或 UpdatePanel1
,如果设置它们仍然不起作用执行以下步骤:
1-首先将该标签控件移动到UpdatePanel
的ContentTemplate
2- 然后处理 ajaxToolkit:Rating
的 Click()
事件
3-最后你必须在设计模式下有类似的东西:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<ajaxToolkit:Rating ID="Rating1" AutoPostBack="true" runat="server"
StarCssClass="Star" WaitingStarCssClass="WaitingStar" EmptyStarCssClass="Star"
FilledStarCssClass="FilledStar" OnChanged="OnRatingChanged" OnClick="Rating1_Click">
</ajaxToolkit:Rating>
<asp:Label runat="server" ID="label3"></asp:Label>
<asp:Label runat="server" ID="label4" Text="above"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
和Rating1_Click
背后的代码:
protected void Rating1_Click(object sender, RatingEventArgs e)
{
label3.Text = Rating1.CurrentRating.ToString();
}
这很有魅力!!!
这是我在 aspx 页面中的评级控件。当用户点击星星时,我想更新标签3。
<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();
}
是我的代码有误还是可以通过其他方式获取?我打算从后端获取值,因为稍后我会将其添加到我的数据库中。请帮忙。谢谢。
我认为您要查找的是 OnClick()
而不是 OnChange()
,因为当用户单击 Rate
控件并更改其评分值时,您希望获得 [=] 的当前值14=] 控制并在标签中显示它,顺便说一句,你应该按照下面的说明进行操作,
在做任何事情之前,请考虑 UpdatePanel
的属性,例如 UpdateMode
和 ChildrenAsTriggers
,您可以将它们设置为 UpdateMode="Always" ChildrenAsTriggers="true"
或 UpdatePanel1
,如果设置它们仍然不起作用执行以下步骤:
1-首先将该标签控件移动到UpdatePanel
的ContentTemplate
2- 然后处理 ajaxToolkit:Rating
的 Click()
事件
3-最后你必须在设计模式下有类似的东西:
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<ajaxToolkit:Rating ID="Rating1" AutoPostBack="true" runat="server"
StarCssClass="Star" WaitingStarCssClass="WaitingStar" EmptyStarCssClass="Star"
FilledStarCssClass="FilledStar" OnChanged="OnRatingChanged" OnClick="Rating1_Click">
</ajaxToolkit:Rating>
<asp:Label runat="server" ID="label3"></asp:Label>
<asp:Label runat="server" ID="label4" Text="above"></asp:Label>
</ContentTemplate>
</asp:UpdatePanel>
和Rating1_Click
背后的代码:
protected void Rating1_Click(object sender, RatingEventArgs e)
{
label3.Text = Rating1.CurrentRating.ToString();
}
这很有魅力!!!