2016-04-01 35 views
0

Düğme onaylamak istiyorum, satırların en az birinin JavaScript'te düzenlenip güncellenmesi gerekiyor. GridView Validation, düzgün bir şekilde çalışmıyor

Ben de ilk satırı güncellemek ve bu mükemmel herhangi bir uyarı vermiyor gönderdiğinizde, is Buradaki Ne doğrulama

function checkGridValidate() { 
     var StrPriError = ""; 

     var grdCount = GrdProspective1.Rows.length; 

     for (var i = 0; i < grdCount; i++) { 

      if (GrdProspective1.Rows[0].Cells[5].Value == "" || GrdProspective1.Rows[0].Cells[7].Value == "") { 
       StrPriError += "Kindly edit atleast one row \n"; 
      } 
      if (StrPriError != "") { 
       alert(StrPriError); 
       return false; 
      } 
      else { 
       return true; 
      } 
     } 
    } 

için aşağıdaki kodu yazdım, ama yine de ikinci satır o güncellediğimde bana sorar En az bir satır.

Burada neyin yanlış gittiğini bilmiyorum.

bir anda aynı

+0

Dizin satırında "i" döngü değişkeni kullanılmıyor mu? Bunu senin kodunda görmüyorum. Yani ne yapar, daima ilk sıraya bakar. –

+0

@MaheshChavda: Ben de denedim ve kontrol edeyim ikinci satır – BNN

cevap

1

için js fiddle bakmak, doğrulama sadece iki nedenden dolayı üst satırı kontrol sınırlıdır var:

  • .Rows[0] daima üst satır inspect rağmen edecek for döngü. o toplama yoluyla artırır olarak

    Bu i faydalanmak gerekir:

    son if..else
    if (GrdProspective1.Rows[i].Cells[5].Value == "" || 
    
  • , her iki durumda da ing return tarafından, döngü kesintiye uğratır. Burada return ifadeleri, döngü ile ilgili olarak break ifadelerine benzer bir etkiye sahiptir. Eğer döngü kesintiye istemedikçe

    Yani, onlar döngü dışına taşınması gereken:

    for (var i = 0; i < grdCount; i++) { 
        if (...) { 
         // ... 
        } 
    } 
    
    if (StrPriError != "") { 
        alert(StrPriError); 
        return false; 
    } 
    else { 
        return true; 
    } 
    

rağmen, farklı bir sorun ortaya çıkarmalı bu sabitleme - fonksiyonu kontrol ediyor her satırın bir veya daha fazla yerine düzenlenmiş olması.

Örneğin, 5 satır varsa ve satırların 2'sinde iki alanı da doldurursanız, kalan 3 satır bu koşulla eşleşir ve hata iletisini ekler.

Durumu tersine çevirdiğinizde, doldurulup doldurulup doldurulmadığını belirten bir satır ararsınız, bunu çözmelisiniz.

function checkGridValidate() { 
    // assume invalid until found otherwise 
    var anyEdited = false; 

    var grdCount = GrdProspective1.Rows.length; 
    for (var i = 0; i < grdCount; i++) { 
     var cells = GrdProspective1.Rows[i].Cells; 

     // verify that both fields were given a value 
     if (cells[5].Value !== "" && cells[7].Value !== "") { 

      anyEdited = true; // remember that you've found an edited row 
      break;   // and, no need to keep looking for more 
     } 
    } 

    // alert only if no rows were filled out 
    if (!anyEdited) { 
     alert("Kindly edit at least one row."); 
    } 

    return anyEdited; 
} 
+0

için değerleri güncellerseniz yine de bana doğrulama hatası veriyor. Herhangi bir satırı güncellemeden formu doğrudan gönderdiğimde – BNN

+0

. hala gönderiliyor. Bu kod ile denendi. https://jsfiddle.net/e8o5mcyo/ – BNN

+0

Güncellenmiş kodunuzla denedim, gridview – BNN

İlgili konular