Tabel data Jquery, kotak centang, dan asp.net

Saya bekerja dengan tabel data Jquery dengan repeater asp.net dan 90% semuanya berfungsi dengan baik. Masalahnya adalah saya memiliki kolom kotak centang dan jika saya menelusuri tabel data dengan mencentang beberapa kotak dan kemudian mengirimkan, saya hanya mendapatkan halaman detail terakhir, ia melupakan semua halaman lain di mana kotak centang dicentang.

Hal ini kurang lebih dibahas di sini:

http://www.datatables.net/forums/discussion/7700/repeater-checkbox-and-paging/p1

Namun, saya tidak tahu bagaimana cara mendapatkan data itu dari postback asp.net, adakah yang menjelaskan bagaimana saya bisa mengulangi melalui repeater dan mendapatkan semua kotak yang dicentang?

Terima kasih.


person Full Time Skeleton    schedule 04.02.2012    source sumber
comment
Siapa pun? Saya kira saya bisa menggunakan semacam solusi postback oncheckchanged tetapi itu tidak ideal dan bisa berantakan. Adakah yang tahu solusi yang lebih baik yang cocok dengan model postback .net?   -  person Full Time Skeleton    schedule 06.02.2012


Jawaban (2)


Saya akan menambahkan pengendali klik pada setiap kotak centang yang menambah/menghapus id dari kotak centang yang dipilih dalam beberapa daftar (misalnya sebagai konten dari beberapa bidang tersembunyi sebagai daftar yang dipisahkan koma atau yang serupa).

Saat Anda memposting formulir, Anda dapat membaca konten ini dari Permintaan["hiddenFieldName"], membaginya dengan koma dan menyimpannya.

Mengenai nilai kotak centang yang hilang pada perubahan halaman tidak ada solusi langsung. Pilihan saya adalah mengikat event handler "halaman" ke datatable - sesuatu seperti ini:

$('#example')
    .bind('page',   function () { populateCheckboxes(  ); })
    .dataTable();  

fungsi populateKotak centang akan dipanggil pada setiap perubahan halaman dan di sini Anda dapat menelusuri semua kotak centang di tabel dan memeriksa apakah nilainya ada dalam daftar di bidang tersembunyi.

Maaf tetapi tidak ada solusi yang lebih mudah untuk ini, namun skrip ini juga tidak terlalu rumit.

Jovan

person Jovan MSFT    schedule 14.02.2012

Gunakan pendekatan di bawah ini di belakang kode Anda. "rptrPayableItems" adalah nama pengulang.

foreach (RepeaterItem ri in rptrPayableItems.Items){                    
  CheckBox cbPaid = (CheckBox)ri.FindControl("chkbxPayItem");
  if (cbPaid.Checked){       
    //Do your operation here for checked checkbox.
  }
}
person gpr    schedule 29.03.2012
comment
Sayangnya itu tidak berhasil. Dengan Datatables, jika Anda telah membuat halaman, maka ketika Anda mengulangi melalui pengulang dalam kode di belakangnya, ia tidak mengingat item yang dicentang di halaman lain. - person Full Time Skeleton; 02.04.2012