2010-12-08 20 views
0

Ich habe eine Seite, die mehrere Dropdown-Listen enthält, alle mit den gleichen Werten gefüllt. Ich möchte sie sowohl auf der Client- als auch auf der Server-Seite vergleichen.Vergleichen DropDownLists

Das Problem ist jedoch, dass die Dropdown-Listen dynamisch generiert werden, da ihre Menge variieren kann.

Antwort

0

Client-Seite zu vergleichen:

<script type="text/javascript"> 
     function CompareSelectedValues(dropDown1ID, dropDown2ID) { 
      var DropDownList1 = document.getElementById(dropDown1ID); 
      var DropDownList2 = document.getElementById(dropDown2ID); 
      if (DropDownList1.selectedIndex != -1 && DropDownList2.selectedIndex != -1) { 
       if (DropDownList1.options[DropDownList1.selectedIndex].value != DropDownList2.options[DropDownList2.selectedIndex].value) 
        alert('not same'); 
      } 
     } 
    </script> 




Classic-Server Seite mit C# zu vergleichen:

private bool AreDropDownListValuesEqual(DropDownList ddlist1, DropDownList ddlist2) 
    { 
     // Check for invalid input or different number of items for early return 
     if (ddlist1 == null || ddlist2 == null || ddlist1.Items.Count != ddlist2.Items.Count) 
     { 
      return false; 
     } 

     // Check items one by one. We need a nested loop because the list could be sorted differently while having the same values! 
     foreach (ListItem outerItem in ddlist1.Items) 
     { 
      bool hasMatch = false; 
      foreach (ListItem innerItem in ddlist2.Items) 
      { 
       if (innerItem.Value == outerItem.Value && innerItem.Text == outerItem.Text) 
       { 
        hasMatch = true; 
        break; 
       } 
      } 

      if (!hasMatch) 
      { 
       return false; 
      } 
     } 

     // All items from ddlist1 had a match in ddlist2 and we know that the number of items is equal, so the 2 dropdownlist are matching! 
     return true; 
    } 
0

Welche Art von Vergleich benötigen Sie? Wenn Sie sie nicht in einer Liste und dieser Liste in Sitzung aufbewahren, können Sie mit ihnen nichts anfangen, da Sie sie dynamisch hinzufügen. Fügen Sie Ihre Dropdown-Listen dort hinzu, wo Sie sie erstellen (dies sollte ich bei Page.IsPostBack == false) und behalten Sie diese Liste in der Sitzung. Laden Sie bei Postbacks Ihre Dropdown-Listen aus der Liste. Sie können sie anhand der von Ihnen gespeicherten Liste vergleichen.

Verwandte Themen