2011-11-14 8 views
6

J'ai une question simple sur les filtres. J'ai 4 listes déroulantes qui filtrent les données dans mon application Web à partir de la table de base de données MySQL. La première liste déroulante est déjà sélectionnée et affiche un seul ID_projet, mais les autres listes déroulantes affichent toutes les valeurs possibles de la base de données. C'est ce que j'ai fait jusqu'à présent. Mais je veux afficher seulement les valeurs de données pour ce projet particulier sélectionné.Comment filtrer les valeurs de la liste déroulante par une autre liste déroulante dans ASP.NET, C#

C'est ASP.NET 4.0, C# derrière et la base de données MySQL utilisée. Toute aide sera appréciée. Merci

Répondre

6

contrôle des liens suivants pour en cascade peuplant liste déroulante.

http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/CascadingDropDown/CascadingDropDown.aspx

http://www.codeproject.com/KB/aspnet/CascadingDropDown.aspx

http://www.aspsnippets.com/Articles/Creating-Cascading-DropDownLists-in-ASP.Net.aspx

code:

<table> 
    <tr> 
     <td>First</td> 
     <td><asp:DropDownList ID="DDLFirst" runat="server" AutoPostBack="true" 
       onselectedindexchanged="DDLFirst_SelectedIndexChanged"></asp:DropDownList></td> 
    </tr> 
    <tr> 
     <td>Secord</td> 
     <td><asp:DropDownList ID="DDLSecond" runat="server" AutoPostBack="true" 
       onselectedindexchanged="DDLSecond_SelectedIndexChanged"> 
      <asp:ListItem Text="Select" Value="Select"></asp:ListItem>  
      </asp:DropDownList></td> 
    </tr> 
    <tr> 
     <td>Thrid</td> 
     <td><asp:DropDownList ID="DDLThird" runat="server"><asp:ListItem Text="Select" Value="Select"></asp:ListItem> </asp:DropDownList></td> 
    </tr> 
</table> 

// code derrière protected void Page_Load (sender objet, EventArgs e) { si (IsPostBack) {// votre code pour lier la première goutte de déclasser

 } 
    } 

    protected void DDLFirst_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (DDLFirst.SelectedIndex > 0) 
     { 
      string FirstDDLValue = DDLFirst.SelectedItem.Value; 
      // below your code to get the second drop down list value filtered on first selection 


     } 

    } 

    protected void DDLSecond_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     if (DDLSecond.SelectedIndex > 0) 
     { 
      string SecondDDLValue = DDLSecond.SelectedItem.Value; 
      // below your code to get the third drop down list value filtered on Second selection 


     } 
    } 
+0

Merci les gars cela a vraiment aidé. Donc ce dont j'ai besoin est le contrôle AJAX ToolKit et CascadignDropDown. – Pepys

+0

Existe-t-il une autre façon de faire cela? Sans la boîte à outils AJAX .. en quelque sorte je ne travaille pas pour moi et je suis confus ..: [ – Pepys

+1

Vous pouvez le faire par publication. lorsque l'événement Dropdownlist SelectedIndexChanged lie la deuxième liste déroulante. et sur la seconde liaison selectedindexchanged troisième drowdownlist. –

Questions connexes