将 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 的属性,例如 UpdateModeChildrenAsTriggers,您可以将它们设置为 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();
}

这很有魅力!!!