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

一見すると、問題の原因となるエラーが 1 つあります。

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

私が正しければ、あなたの jQuery セレクターは ID を持つ DOM 要素を見つけます。つまり、要素は 1 つしか見つからないということです。したがって、おそらく最後の#span1だけが jQuery で見つかります。たとえば、これを別のセレクターに変更してみてください。

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