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 回答