Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 12 kết quả

Đề tài: Đếm dòng Gridview bằng Javascript không đúng là lỗi gì?

  1. #1
    Ngày gia nhập
    12 2010
    Nơi ở
    New York
    Bài viết
    23

    Mặc định Đếm dòng Gridview bằng Javascript không đúng là lỗi gì?

    Tôi có 1 gridview như trong hình, 1 thẻ span ngoài gridview, ở cột đầu tiên có 2 checkbox, 1 cái ở headertemplate, một cái ở itemtemplate.



    Tôi có đoạn jquery sau để đếm khi checked vào bao nhiêu dòng thì thẻ span hiện số dòng tương ứng:
    Code:
    <script type="text/javascript">
            $(function () {            
                $('input:checkbox').click(function (e) {
                    i = 0;
                    $('tr:has(:checkbox:checked)').each(function () {
                        i++;
                    });                
                    $('#span1').html(' Bạn đã chọn ' + i + ' dòng');
                });
            });
        </script>
    Vấn đề ở đây là rõ ràng chọn 3 dòng, mà nó lại hiển thị 4 dòng, vì nó tính luôn cái checkbox ở trên header. Các bạn có cách nào loại cái checkbox ở header ra không? Xin cám ơn!

  2. #2
    Ngày gia nhập
    02 2011
    Nơi ở
    Tp.HCM
    Bài viết
    124

    Bạn khởi tạo biến i = 1 thay vì là i = 0 thử xem

  3. #3
    Ngày gia nhập
    12 2010
    Nơi ở
    New York
    Bài viết
    23

    Trích dẫn Nguyên bản được gửi bởi LieuLuc Xem bài viết
    Bạn khởi tạo biến i = 1 thay vì là i = 0 thử xem
    tôi thêm i=1; thì nó hiện ra 5 dòng bạn ơi ...

  4. #4
    Ngày gia nhập
    03 2010
    Bài viết
    236

    Code:
    <table>
        <tr><td><input type="checkbox" value="a" /></td></tr>
        <tr><td><input type="checkbox" value="b" /></td></tr>
        <tr><td><input type="checkbox" value="c" /></td></tr>
        <tr><td><input type="checkbox" value="d" /></td></tr>
    </table>
    Code:
     $('#calculate').click(function() {
         var i = 0;
             $('tr:has(:checkbox:checked)').each(function() {
                 i++;
             });
             alert(i);
         });
    Của mình vẫn đếm đúng.

  5. #5
    Ngày gia nhập
    12 2010
    Nơi ở
    New York
    Bài viết
    23

    Trích dẫn Nguyên bản được gửi bởi trungvx Xem bài viết
    Code:
    <table>
        <tr><td><input type="checkbox" value="a" /></td></tr>
        <tr><td><input type="checkbox" value="b" /></td></tr>
        <tr><td><input type="checkbox" value="c" /></td></tr>
        <tr><td><input type="checkbox" value="d" /></td></tr>
    </table>
    Code:
     $('#calculate').click(function() {
         var i = 0;
             $('tr:has(:checkbox:checked)').each(function() {
                 i++;
             });
             alert(i);
         });
    Của mình vẫn đếm đúng.
    Với code đó thì table của bạn không có tiêu đề, bạn thử thêm 1 checkbox ở dòng tiêu đề của table xem nó đếm như thế nào khi chọn luôn cái checkbox ở tiêu đề đó.
    Code của mình thì đếm đúng rồi, nhưng khi chọn vào checkbox ở tiêu đề thì nó đếm dư 1 dòng, khổ vậy.

  6. #6
    Ngày gia nhập
    08 2011
    Bài viết
    35

    Mặc định Đếm dòng Gridview bằng Javascript không đúng là lỗi gì?

    Đặt cho các <tr> tiêu đề cái tên vào đấy rồi kiểm tra nếu là <tr> header thì uncheck đi jquery làm tốt mà

  7. #7
    Ngày gia nhập
    12 2010
    Nơi ở
    New York
    Bài viết
    23

    Trích dẫn Nguyên bản được gửi bởi cuongnguyenict Xem bài viết
    Đặt cho các <tr> tiêu đề cái tên vào đấy rồi kiểm tra nếu là <tr> header thì uncheck đi jquery làm tốt mà
    cái checkbox tiêu dề có id="chkHead", bạn viết cho mình 1 dòng code kiểm tra đi, jqyery mình không rành mấy.

  8. #8
    Ngày gia nhập
    10 2010
    Bài viết
    518

    Code lại theo ý ban đầu của chủ thớt-1 dòng là xong:
    $('#span1').html(' Bạn đã chọn ' + ($("tr input:checkbox:not(:first):checked").length) + ' dòng');
    Cái này dễ nhất là đặt class cho các checkbox phía dưới, nếu ko thì thêm id của table(hay 1 cái gì khác của table) vào để phân biệt, tránh nó lấy cả checkbox nằm trong các table khác

  9. #9
    Ngày gia nhập
    12 2010
    Nơi ở
    New York
    Bài viết
    23

    Trích dẫn Nguyên bản được gửi bởi Solewind.IT Xem bài viết
    Code lại theo ý ban đầu của chủ thớt-1 dòng là xong:
    $('#span1').html(' Bạn đã chọn ' + ($("tr input:checkbox:not(:first):checked").length) + ' dòng');
    Cái này dễ nhất là đặt class cho các checkbox phía dưới, nếu ko thì thêm id của table(hay 1 cái gì khác của table) vào để phân biệt, tránh nó lấy cả checkbox nằm trong các table khác
    ok - 1 dòng là xong, cám ơn bạn, code chạy đúng rồi.
    -ý thứ 2 của bạn thì mình làm trong gridview chứ không làm trong table, gridview có id="gXoa" mình viết lại code như thế này thì nó không chạy, bạn xem giúp:
    Code:
    $('#pan1').html(' Bạn có chắc chắn xóa ' + ($('#gXoa tr input:checkbox:not(:first):checked').length) + ' tin không ?');

  10. #10
    Ngày gia nhập
    10 2010
    Bài viết
    518

    GridView thì cuối cùng vẫn ra table thôi, viết thế kia thì chắc sai ID, mà viết thế này là hay nhất cho trường hợp của bác:
    #table1 tr td:first-child input:checkbox:not(:first):checked
    Đảm bảo k bị trùng với các checkbox khác ở trong cùng 1 bảng

Các đề tài tương tự

  1. Cách duyệt từng dòng trên gridview khi gridview phân trang ?
    Gửi bởi quangbinhit trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 11
    Bài viết cuối: 29-08-2014, 09:02 AM
  2. Khắc phục kiểu Double hiển thị đúng giá trị trên Gridview?? (ASP.NET)
    Gửi bởi nguyenducbachy trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 10
    Bài viết cuối: 16-04-2013, 07:30 PM
  3. Lấy dòng hiện hành trong GridView
    Gửi bởi duyhientk6 trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 06-04-2013, 03:16 PM
  4. Làm sao chỉ cho check 1 RadioButton (hoặc CheckBox) trên GridView mà không dùng javascript?
    Gửi bởi laodaika trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 08-07-2012, 11:10 PM
  5. Làm nổi bật 1 dòng trên gridview
    Gửi bởi lenhuyencntt trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 02-04-2009, 01:31 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn