我正在尝试获取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始终为空。
答案 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