这是我用来检查放在行的第一列中的复选框的代码段。
$('[id*=GridView1] tr:not(:first)').each(function (index) {
// Selection of entire row
$(this).on('click', function (e) {
// Check status of checkbox
if ($(this).find("input:checkbox").attr('checked')) {
$(this).find("input:checkbox").attr('checked', false);
}
else
$(this).find('input:checkbox').attr("checked", true);
});
});
但我想避免对gridview的特定列进行点击操作,例如(最后一列和第三列)。我无法选择"这个"元件。你能举个例子吗?请。 提前谢谢
答案 0 :(得分:0)
您可以通过这种方式检查回调中列的索引:
$('[id*=GridView1] tr:not(:first)').each(function (index) {
$(this).on('click', function (e) {
var index = $(event.target).closest("td").index();
// you may now test if index is 3 or the last one
另一种方法是不绑定行而是绑定到单元格
$('[id*=GridView1] tr:not(:first) td').each(function (index) {
var $cell = $(this);
$cell.on('click', function (e) {
var $row = $cell.closest("tr");
请注意,如果您有大表,则可能更喜欢使用委托来减少绑定数。
答案 1 :(得分:0)
$('[id*=GridView1] tr:not(:first)').each(function (index) {
var row = $(this);
var checkbox = row.find("input:checkbox");
row.children('td:not(:last-child)').each(function(ndx) { //skip last cell
if(ndx == 2) return true; //skip third cell
$(this).on('click', function (e) {
// Check status of checkbox
if (checkbox.attr('checked')) {
checkbox.attr('checked', false);
}
else
checkbox.attr("checked", true);
});
});
});
答案 2 :(得分:0)
我找到了解决方案,但这不起作用,因为我必须通过添加“parent()”在if-else中应用进一步的修正。 所以我用这种方式解决了:
$('[id*=GridView1] tr:not(:first)').each(function (index) {
// Seleziono gli elementi che non mi interessano
//var $exclude = $(this).find("select");
// Seleziono tutta l'area della riga tranne l'ultima colonna
$(this).find('td:not(:nth-last-child(2))').on('click', function (e) {
// Controllo lo stato del checkbox
if ($(this).parent().find("input:checkbox").attr('checked')) {
$(this).parent().find("input:checkbox").attr('checked', false);
}
else
$(this).parent().find('input:checkbox').attr("checked", true);
});
});