asp.net转发器和jQuery迭代所有行以查找选中的复选框和标签值

时间:2012-09-07 10:12:26

标签: jquery asp.net asprepeater

我的转发器如下

<ItemTemplate>
<tr>
    <td class="ms-vb2">
        <a href="#" id="aTitle" runat="server" onclick='<%# DataBinder.Eval(Container.DataItem,"ColumnLink") %>'>
            <%# DataBinder.Eval(Container.DataItem,"FieldName") %></a>
    </td>
    <td class="ms-vb2">
        <asp:Label Text='<%# DataBinder.Eval(Container.DataItem,"ControlType") %>' runat="server"
            ID="lblType" />
    </td>
    <td class="ms-vb2" colspan="2">
        <asp:Image ID="imgChecked" runat="server" ImageUrl="/_layouts/images/check.gif" AlternateText='<%# DataBinder.Eval(Container.DataItem,"IsRequired") %>' />
    </td>
    <td class="ms-vb2" colspan="2">
        <asp:CheckBox ID="chkGroupUnique" Checked="false" runat="server" AutoPostBack="true"
            OnCheckedChanged="chkGroupUnique_CheckChanged" /><%--OnCheckedChanged="chkGroupUnique_CheckChanged"Checked='<%#  Boolean.Parse(DataBinder.Eval(Container.DataItem,"Approved").ToString()) %>'--%>
    </td>
</tr>

其中一个dataitem是一个复选框,单击此复选框后,我可以获取复选框的ID以及我想要的数据(lblType),因为我在ItemDataBound事件中添加了这些内容,如下所示

CheckBox chk = (CheckBox)e.Item.FindControl("chkGroupUnique");

Label lblType = (Label)e.Item.FindControl("lblType");

chk.Attributes.Add("onclick", "Check(this,'" + chk.ClientID + "','" + lblType.ClientID + "');");

onclick函数包含此代码

function Check(checkbox, chkBoxId, typeId) {

   var chk =  document.getElementById(chkBoxId);
   var type = document.getElementById(typeId);

   if (checkbox.checked) {
       var t = type.innerText;
   }

   return false;
 }

现在我已经选中了复选框clientId和标签clientId。我想检查是否有任何其他复选框已选中并在该行标签控件中具有相同的值。我如何使用jQuery或普通的javascript

来做到这一点

提前致谢

1 个答案:

答案 0 :(得分:0)

我建议你在ItemDataBound事件中将每个CheckBox控件添加到Control Collection中。(你也可以形成他们ID的集合)

将该集合传递给Javascript函数并在Javascript函数中迭代它以检查复选框的状态..