Maison  >  Questions et réponses  >  le corps du texte

Décochez des lignes spécifiques dans la colonne de sélection de Kendo Grid dans ASP.NET MVC à l'aide de JavaScript et jQuery : guide étape par étape

J'ai une Kendo Grid dans mon projet ASP.NET MVC 5. L'une des colonnes est une colonne de sélection et j'essaierai de décocher la case si elle remplit une certaine condition. J'ai réussi à décocher la case. Le problème est que cela modifie simplement l'interface utilisateur mais ne supprime pas ce qui a été désélectionné this.select(). Décochez simplement les lignes spécifiques qui font que la condition = true et laissez les lignes qui sont fausses cochées.

En résumé, si condition = true, je souhaite décocher la case, la supprimer de this.select() 中删除,从 this.selectedKeyNames() 中删除,并从 this._selectIds(), la supprimer de this.selectedKeyNames() et la supprimer de this._selectIds()< /code> code> pour le supprimer. Ne supprimez pas la ligne du tableau dans l’interface utilisateur.

Le code ci-dessous n'est pas le code réel que j'utilise, mais quelque chose de similaire. Le code ci-dessous risque de ne pas s'exécuter.

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 Il y a quelques jours396

répondre à tous(1)je répondrai

  • P粉561438407

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

    semble être le gestionnaire d'événements change 事件无法在事件处理程序中阻止,因此您可以添加 dataBound et attache le gestionnaire de clics à la case à cocher sélectionnée. Si la condition est remplie - arrêter la propagation de l'événement :

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

    Dans cet exemple, vous ne pouvez pas sélectionner des articles discontinués.

    répondre
    0
  • Annulerrépondre