我有一个ListView在第一列中有两列我放置了CheckBox,在第二列中我放置了Label。现在,如果我点击任何复选框,我想要逗号(,)分隔标签文本列表。
我的listview html是
<asp:ListView ID="lsvSelectedFileds" runat="server">
<LayoutTemplate>
<div>
<div style="border-bottom: 1px solid #ffffff">REPORT FILEDS</div>
<table>
<tr>
<td style="width: 20%;">Sel
</td>
<td style="width: 80%;">Field Name
</td>
</tr>
</table>
<div>
<table>
<tbody>
<tr id="itemPlaceholder" runat="server" />
</tbody>
</table>
</div>
</div>
</LayoutTemplate>
<ItemTemplate>
<table>
<tr>
<td style="width: 20%; text-align: center;">
<asp:CheckBox ID="chkSelectedField" runat="server" onclick="getText(this);"/>
</td>
<td style="width: 80%; text-align: left;">
<asp:Label ID="lblFields" runat="server" Text='<%# Eval("FIELDNAME") %>'></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
而jQuery是
<script type="text/javascript">
function getText(ctrl) {
try {
var Fields = '';
$("#<%=lsvSelectedFileds.ClientID%> tr").each(function() {
var checkBox = $(this).find("input[type='checkbox']");
var textBox = $(this).find('span[id*="lblFields"]').text();
alert(checkBox);
if ($(checkBox).is(':checked')) {
Fields += textBox.val();
}
});
alert(Fields);
} catch (e) {
alert(e.message);
}
}
请帮帮我
答案 0 :(得分:0)
我尝试一下你的情况,用基本的html替换一些asp数据,这就是我得到的:
function getText(ctrl) {
try {
var Fields = '';
var totalChecked = $("ItemTemplate tr input[type='checkbox']:checked").length;
var cpt = 0;
$("ItemTemplate tr input[type='checkbox']:checked").each(function () {
cpt++;
var textBox = $(this).closest("tr").find('label').text();
if (cpt == totalChecked) {
Fields += textBox;
} else {
Fields += textBox + ",";
}
});
alert(Fields);
} catch (e) {
alert(e.message);
}
}