0

我将星级评定 jQuery 绑定在转发器控件中。

评级值取自数据库。我面临的问题是,中继器控件仅显示数据库中的最后一个评级值。

我尝试通过这里给出的方法使用 jQuery 和 CSS 将数字转换为星级显示

jQuery 添加到示例中:

$(document).ready(function () {
            $('#chk').click(function () {         
                $('input[type=hidden]').each(function () {
                    var hiddenValue = $(this).val();                  
                    document.getElementById('span1').html = hiddenValue;
                    $("#span1").text(hiddenValue);
                });

我的设计代码是:

<asp:repeater id="RepDetails" runat="server">
<HeaderTemplate>
   </HeaderTemplate>
<ItemTemplate>   
Rating:<td align="left">
  <span class="stars" id="span1"></span>
</td>
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%#Eval("Rating") %>' />
 <a id="chk">Click</a>
</td>  
</ItemTemplate>
<FooterTemplate>
</FooterTemplate>
</asp:repeater>

代码文件

protected void Page_Load(object sender, EventArgs e)
{        
        partnerid = "1";
        productid = "2";
        DataSet ds = ServiceObj.GetComments(partnerid, productid);
        RepDetails.DataSource = ds.Tables[0];
        RepDetails.DataBind();
}

有什么建议可以为数据库中的每个值绑定评级吗?

4

1 回答 1

1

乍一看,您有一个错误可能导致您的问题:

$("#span1").text(hiddenValue);

如果我是对的,您的 jQuery 选择器将找到带有 ID 的 DOM 元素,这意味着应该只找到一个元素。因此,您可能只有在 jQuery 中找到的最后一个#span1。尝试将其更改为另一个选择器,例如:

$(".aClass").text(hiddenValue);
$(this).find('input[type="hidden"]').text(hiddenValue);
于 2012-09-10T07:57:10.020 回答