转发器中的选中复选框

时间:2014-04-08 10:05:37

标签: javascript jquery asp.net

我正在尝试获取ASP Repeater中所选复选框的所有ID,但是我似乎无法获取值。以下是我的代码(减少):

  protected void rptFire_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            DataRowView nRow = null;

            switch (e.Item.ItemType)
            {
                case ListItemType.Item:
                case ListItemType.AlternatingItem:
                  nRow = (DataRowView)e.Item.DataItem;

                    ((CheckBox)e.Item.FindControl("cbSelectedItem")).Attributes.Add("data-Sel", LocID);
                    break; 

            }

}

以上是设置ID以继续数据集

复选框是:

<asp:CheckBox ID="cbSelectedItem" CssClass="cEditItem" runat="server" />

javascript是:

   $(".editItem").click(function () {
         var chkId = '';
         $('.cEditItem:checked').each(function () {
             chkId += $(this).data("sel") + ",";
         });
         chkId = chkId.slice(0, -1);
         alert(chkId);
         return false;
     });

无论选择并单击任何内容,警报都会弹出两次,但chkId始终为空。

1 个答案:

答案 0 :(得分:0)

首先,您应该阅读自定义数据属性&#34; data-Sel&#34;您使用下面的代码添加的。

((CheckBox)e.Item.FindControl("cbSelectedItem")).Attributes.Add("data-Sel", LocID);

现在,这个代码可以根据需要运行。

$(".editItem").click(function () {
    var chkId = '';
       $('input:checkbox').each(function () {
           var sThisVal = (this.checked ? $(this).attr("data-Sel") : "");

           if(sThisVal.length > 0)
               chkId += sThisVal + ",";
      });
    chkId = chkId.slice(0, -1);
    alert(chkId);
});

请参阅DEMO