使用Javascript循环ASP.NET DataList

时间:2014-07-09 13:20:35

标签: javascript jquery asp.net

我们如何循环遍历所有ASP.NET DataList项并使用Javascript访问ItemTemplate中的所有项的值(在本例中为复选框和标签)?

这是asp.net:

<asp:DataList ID="DataGroup" ClientIDMode="Static" runat="server" DataKeyField="GroupName" RepeatColumns="2" RepeatDirection="Vertical" HeaderStyle-VerticalAlign="Top">
     <ItemTemplate>
          <asp:CheckBox ID="chk1" runat="server"/>
          <asp:Label ID="ProductIDLabel" runat="server" Text='<%# Eval("GroupName") %>' style="padding-right:30px;"/>
     </ItemTemplate>
</asp:DataList>

我不确定我是应该使用Jquery还是仅使用纯Javascript ...

2 个答案:

答案 0 :(得分:1)

您可以为列表中的每个项目添加一个类,如下所示

  <asp:DataList ID="DataGroup" runat="server" DataKeyField="GroupName" RepeatColumns="2" RepeatDirection="Vertical" HeaderStyle-VerticalAlign="Top">
         <ItemTemplate>
              <asp:CheckBox ID="chk1"  Class ="dataGroupItem" runat="server"/>
              <asp:Label ID="ProductIDLabel" Class ="dataGroupItem" runat="server" Text='<%# Eval("GroupName")  %>' style="padding-right:30px;"/>
         </ItemTemplate>
    </asp:DataList>

然后用这个类名循环遍历所有内容:

<script>
    $('.dataGroupItem').each(function(){
        //Todo
    });
</script>

这是一个指向jsFiddle的链接,因此您可以尝试使用Count:jsfiddle

答案 1 :(得分:0)

编译文件并在浏览器中运行。 右键单击并选择&#34;查看源&#34;。 找到你的复选框(它将是HTML中的输入,但id应该是相同的。* 在ASPX文件中的结束正文标记之前插入脚本标记并运行此脚本

像这样(未经测试)

<script>
var chkBox = document.getElementById("chk1");
if (chkBox.checked)
{
    doSomething();
}
</script>

*编辑:ID可能已更改为&#34; ContentPlaceHolder1_chk1&#34;