使用jquery循环asp转发器项目

时间:2013-04-23 13:50:16

标签: jquery asp.net

任何人都可以使用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

3 个答案:

答案 0 :(得分:2)

首先,在使用转发器时,您无法使用jquery中的#lbldesc等ID直接访问字段,因为asp会为转发器生成的每个字段分配自己的唯一值。

那就是说,你仍然可以选择获取数据并使用它,使用css类就可以实现这一点:

将类分配给lbldesclblId:假设给出了相同的类,现在您可以在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());
        }
});

注意:数组和循环仅作为示例 希望这能回答你的问题

答案 1 :(得分: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代码,可以帮到你。

修改: 以上代码已经过编辑

快乐编码:)

答案 2 :(得分: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类作为选择器