2

Jqueryを使用してリピーターでアイテムをループする方法について誰でも助けてくれますか? 私はこのコードを持っています

<asp:Repeater runat="server" ID="rptData">
  <HeaderTemplate>
    <div style="border: 1px solid #c4c4c4; width: 98%; font:8px;">
        <table cellpadding="4px" id="tbValue" width="100%" style="margin:0;">
            <tr>
                <td width="30%" style="background-color: #CCC;">Qty</td>
                <td width="60%" style="background-color: #CCC;">Description</td>
                <td width="60%" style="background-color: #CCC;">ID</td>
            </tr>
  </HeaderTemplate>
  <ItemTemplate>
    <tr style="background: #fff" <%# If(Container.ItemIndex Mod 2=0 , "class='odd'", "") %>>
        <td>
            <asp:TextBox ID="txtQuantity" runat="server" CssClass="textbox" />
        </td>
        <td>
            <asp:Label ID="lblDesc" runat="server" Text='<%# Eval("Description")%>' CssClass="LabelInfo" />
        </td>
        <td>
            <asp:Label ID="lblId" runat="server" Text='<%# Eval("Kit_ID")%>' />
        </td>
    </tr>
  </ItemTemplate>
  <FooterTemplate>
    </table>
    </div>
  </FooterTemplate>
</asp:Repeater>
<asp:Button ID="btnSubmit" runat="server" Text="Submit" CssClass="button" Width="150px" style="margin: 1.5em 2em 0 0;" />

私がやろうとしているのは、ボタンクリックでリピーターの各txtqtyを取得し、値が10に等しいかどうかを確認したいということです。10に等しい場合は、lbldescの値を取得し、10未満の場合は取得しますlblId 値

出力は -Equal tom 10 である必要があります

DESCRIPTION    - QUANTITY
Itemxxx        – 10 
Itemwww        – 10 

ID - QUANTITY
1  – 7 
2  – 2
4

3 に答える 3

2

まず、#lbldescリピーターを使用する場合、jquery のように id を使用してフィールドに直接アクセスすることはできません。これは、asp がリピーターによって生成されるすべてのフィールドに独自の一意の値を割り当てるためです。

そうは言っても、データを取得して使用するオプションはまだあります。ここで css クラスを使用すると、これを実現できます。

クラスを両方に割り当てlbldescますlblId: 同じクラスが指定されているとしましょう。これで、次のように jquery で簡単にループできます。

$('#btnSubmit').click(function(){
     var equalToTen = new Array();
        var notEqualToTen = new Array();

        $('.textbox').each(function () {
            if (Number($(this).val()) > 10) {
                equalToTen.push($(this).closest('tr').find('.lbldesc').html());
            }
            else {
                notEqualToTen.push($(this).closest('tr').find('.lblId').html());
            }
        });

        for (var i = 0; i < equalToTen.length; i++) {
            alert("I am equal to 10: " + equalToTen.pop());
        }

        for (var i = 0; i < notEqualToTen.length; i++) {
            alert("I am not equal to 10: " + notEqualToTen.pop());
        }
});

注:配列とループは例にすぎません。
これがあなたの質問に答えることを願っています

于 2013-04-23T14:51:14.100 に答える
1
$('#btn').on('click',function(){
  $('#txtQuantity').each(function () 
   {
      var val;
      if($(this).val()==10)
      {
        val=$(this).closest('tr').find('#lblDesc').text();
      }
      else
      {
        val=$(this).closest('tr').find('#lblId').text();
      }
   });

 });

これは簡単な Jquery コードです。

編集:上記のコードは編集されています

ハッピーコーディング:)

于 2013-04-23T14:00:05.377 に答える
1

このようになる可能性があります

<script>
$(document).ready(function() {
$(buttonselector).on('click',function(){ 
  $('.textbox').each(function(){
      if($(this).val() == 10){
         $(outputselector).html($(this).next('#lbldesc').html());
      }
      else{
       $(outputselector).html($(this).next('#lblId').html());
      }
  });

})
});
</script>

これらの #net コントローラーはこの醜い ID を作成しますが、lbldesc と lblId に css クラスを与え、css クラスをセレクターとして使用する方がよいでしょう

于 2013-04-23T14:02:15.597 に答える