Rumah  >  Soal Jawab  >  teks badan

Nyahtanda baris tertentu dalam lajur pilih Grid Kendo dalam ASP.NET MVC menggunakan JavaScript dan jQuery: Panduan langkah demi langkah

Saya mempunyai Kendo Grid dalam projek ASP.NET MVC 5 saya. Salah satu lajur ialah lajur pilih dan saya akan cuba menyahtanda kotak semak jika ia memenuhi syarat tertentu. Saya telah berjaya menyahpilih kotak pilihan. Masalahnya ialah ia hanya menukar UI tetapi tidak mengalih keluar apa yang dinyahpilih daripada this.select() . Hanya nyahtanda baris tertentu yang menjadikan syarat = benar dan biarkan baris yang palsu ditandakan.

Ringkasnya, jika syarat = benar, saya mahu nyahtanda kotak, alih keluar dari this.select() 中删除,从 this.selectedKeyNames() 中删除,并从 this._selectIds(), alih keluar dari this.selectedKeyNames() dan alih keluar dari this._selectIds()< /code> code> untuk memadamnya. Jangan padamkan baris daripada jadual dalam UI.

Kod di bawah bukanlah kod sebenar yang saya gunakan tetapi sesuatu yang serupa dengannya. Kod di bawah mungkin tidak dijalankan.

function onChange(e) {
   var selectedRows = this.select();
   for(var i = 0; i < selectedRows.length; i++){
       selectedRows[i].find("input[type='checkbox']").prop('checked', false);
       if( 2 > 6) {
          alert("You can't select this");
    }
  }
}

P粉364642019P粉364642019183 hari yang lalu394

membalas semua(1)saya akan balas

  • P粉561438407

    P粉5614384072024-03-31 10:43:21

    nampaknya menjadi change 事件无法在事件处理程序中阻止,因此您可以添加 dataBound pengendali acara dan melampirkan pengendali klik pada kotak pilihan yang dipilih. Jika syarat dipenuhi - hentikan penyebaran peristiwa:

    dataBound: function(){
              var grid = this;
              grid.tbody.find('tr .k-select-checkbox').on('click', function(e){
                var dataItem = grid.dataItem($(this).closest("tr"));
                if(dataItem.Discontinued){
                  $(this).prop('checked', !$(this).prop('checked'));
                  e.stopImmediatePropagation();
                  kendo.alert(`${dataItem.ProductName} is discontinued, you cannot select it!`)
                }
              })
            }

    Dalam contoh ini, anda tidak boleh memilih item yang dihentikan.

    balas
    0
  • Batalbalas