Heim  >  Fragen und Antworten  >  Hauptteil

Deaktivieren Sie bestimmte Zeilen in der Kendo Grid-Auswahlspalte in ASP.NET MVC mithilfe von JavaScript und jQuery: Schritt-für-Schritt-Anleitung

Ich habe ein Kendo Grid in meinem ASP.NET MVC 5-Projekt. Eine der Spalten ist eine Auswahlspalte und ich werde versuchen, das Kontrollkästchen zu deaktivieren, wenn es eine bestimmte Bedingung erfüllt. Ich habe es geschafft, das Kontrollkästchen zu deaktivieren. Das Problem ist, dass dadurch nur die Benutzeroberfläche geändert wird, aber nicht entfernt wird, was von this.select() abgewählt wurde. Deaktivieren Sie einfach die spezifischen Zeilen, die die Bedingung = wahr machen, und lassen Sie die Zeilen, die falsch sind, aktiviert.

Zusammengefasst: Wenn Bedingung = wahr ist, möchte ich das Kontrollkästchen deaktivieren, es aus this.select() 中删除,从 this.selectedKeyNames() 中删除,并从 this._selectIds() entfernen, es aus this.selectedKeyNames() entfernen und es aus this._selectIds()< entfernen /code> code> um es zu löschen. Löschen Sie die Zeile nicht aus der Tabelle in der Benutzeroberfläche.

Der folgende Code ist nicht der tatsächliche Code, den ich verwende, sondern etwas Ähnliches. Der folgende Code kann möglicherweise nicht ausgeführt werden.

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 Tage vor395

Antworte allen(1)Ich werde antworten

  • P粉561438407

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

    似乎是 change 事件无法在事件处理程序中阻止,因此您可以添加 dataBound 事件处理程序并将单击处理程序附加到选择的复选框。如果满足条件 - 停止事件的传播:

    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!`)
                }
              })
            }

    在此示例中,您无法选择停产商品。

    Antwort
    0
  • StornierenAntwort