我在转发器控件中绑定了星级jQuery。
评级值来自数据库。我面临的问题是,转发器控件只显示数据库中的最后一个评级值。
我试过这里给出的方法Turn a number into star rating display using jQuery and 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();
}
有关绑定数据库中每个值的评级的建议吗?
答案 0 :(得分:1)
首先看你有一个错误可能导致你的问题:
$("#span1").text(hiddenValue);
如果我是对的,你的jQuery选择器会找到带有ID的DOM元素,这意味着只能找到一个元素。因此,您可能只能在jQuery中找到#span1 。尝试将此更改为另一个选择器,例如:
$(".aClass").text(hiddenValue);
$(this).find('input[type="hidden"]').text(hiddenValue);