none
dropdownlist RRS feed

  • Question

  • bonjour,

    je souhaite savoir si il est possible de réutilisé un champ contenu dans un drop down list,

    voila mon probleme, j'ai créé un dropdownlist rattaché a un sql datasource qui me permet d'afficher  les fonction des intervenants, etant données que dans ma base je ne possédé pas la liste de toute les fonctions, j'ai donc ajouté dans mon dropdownlist un champ appelé "autre".

    je souhaite que lorsque l'utilisateur choisi "autre", qu'il puisse saisir le nom de sa fonction et ainsi l'inscrire dans une base de donnée.

     

    voici mes deux codes  :

    le code ci-dessous correspond au module fonction.ascx

    <

     

    asp:Label ID="Label1" runat="server" Text="Fonctions"></asp:Label>

     

    <asp:DropDownList ID="DropDownListFonction" runat="server"

     

    DataSourceID="SqlDataSourceFonction" DataTextField="NomFonction"

     

    DataValueField="IdFonction">

     

    </asp:DropDownList>

     

    <asp:SqlDataSource ID="SqlDataSourceFonction" runat="server"

     

    ConnectionString="<%$ ConnectionStrings:PDP %>"

     

    SelectCommand="SELECT * FROM [Fonction]"></asp:SqlDataSource>

     

    <

     

    uc1:NewFonctionsl ID="NewFonctionsl1" runat="server" Visible="False" />

    voici le code correspondant au modules newfonction.ascx :

    <

     

    asp:SqlDataSource ID="SqlDataSource1" runat="server"

     

    ConnectionString="<%$ ConnectionStrings:PDP %>"

     

    DeleteCommand="DELETE FROM [Fonction] WHERE [IdFonction] = @IdFonction"

     

    InsertCommand="INSERT INTO [Fonction] ([NomFonction]) VALUES (@NomFonction)"

     

    SelectCommand="SELECT * FROM [Fonction]"

     

    UpdateCommand="UPDATE [Fonction] SET [NomFonction] = @NomFonction WHERE [IdFonction] = @IdFonction">

     

    <DeleteParameters>

     

    <asp:Parameter Name="IdFonction" Type="Int32" />

     

    </DeleteParameters>

     

    <UpdateParameters>

     

    <asp:Parameter Name="NomFonction" Type="String" />

     

    <asp:Parameter Name="IdFonction" Type="Int32" />

     

    </UpdateParameters>

     

    <InsertParameters>

     

    <asp:Parameter Name="NomFonction" Type="String" />

     

    </InsertParameters>

    </

     

    asp:SqlDataSource>

    <

     

    asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"

     

    DataKeyNames="IdFonction" DataSourceID="SqlDataSource1">

     

    <Columns>

     

    <asp:BoundField DataField="IdFonction" HeaderText="IdFonction"

     

    InsertVisible="False" ReadOnly="True" SortExpression="IdFonction" />

     

    <asp:BoundField DataField="NomFonction" HeaderText="NomFonction"

     

    SortExpression="NomFonction" />

     

    </Columns>

    </

     

    asp:GridView>

    voici le code de la procedure de la page fonction.ascx.vb

    Protected

     

    Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownListFonction.SelectedIndexChanged

     

    If DropDownListFonction.ID = "4" Then

    NewFonctionsl1.Visible =

    True

     

     

    End If

     

    End Sub

    quelqu'un peut il m'aider s'il vous plait

    jeudi 25 mars 2010 14:35

Réponses

  • Bonjour,

     

    La propreté AutoPostBack du dropdownlist doit avoir la valeur True. Ensuite, attachez une fonction au évènement SelectedIndexChanged et récupérez la valeur sélectée :

     

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)

            {

                string i = ((DropDownList)sender).SelectedValue.ToString();

     

            }

     

    A partir de cette valeur, vous pouvez ajouter un nouveau élément dans la base de données.

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    mercredi 31 mars 2010 09:09

Toutes les réponses

  • bonjour,

    je souhaite savoir si il est possible de réutilisé un champ contenu dans un drop down list,

    voila mon probleme, j'ai créé un dropdownlist rattaché a un sql datasource qui me permet d'afficher  les fonction des intervenants, etant données que dans ma base je ne possédé pas la liste de toute les fonctions, j'ai donc ajouté dans mon dropdownlist un champ appelé "autre".

    je souhaite que lorsque l'utilisateur choisi "autre", qu'il puisse saisir le nom de sa fonction et ainsi l'inscrire dans une base de donnée.

     

    voici mes deux codes  :

    le code ci-dessous correspond au module fonction.ascx

    <

     

     

     

     

    asp:Label ID="Label1" runat="server" Text="Fonctions"></asp:Label>

     

     

    <asp:DropDownList ID="DropDownListFonction" runat="server"

     

     

    DataSourceID="SqlDataSourceFonction" DataTextField="NomFonction"

     

     

    DataValueField="IdFonction">

     

     

    </asp:DropDownList>

     

     

    <asp:SqlDataSource ID="SqlDataSourceFonction" runat="server"

     

     

    ConnectionString="<%$ ConnectionStrings:PDP %>"

     

     

    SelectCommand="SELECT * FROM [Fonction]"></asp:SqlDataSource>

     

    <

     

     

     

     

    uc1:NewFonctionsl ID="NewFonctionsl1" runat="server" Visible="False" />

     

     

     

    voici le code correspondant au modules newfonction.ascx :

    <

     

     

     

     

    asp:SqlDataSource ID="SqlDataSource1" runat="server"

     

     

    ConnectionString="<%$ ConnectionStrings:PDP %>"

     

     

    DeleteCommand="DELETE FROM [Fonction] WHERE [IdFonction] = @IdFonction"

     

     

    InsertCommand="INSERT INTO [Fonction] ([NomFonction]) VALUES (@NomFonction)"

     

     

    SelectCommand="SELECT * FROM [Fonction]"

     

     

    UpdateCommand="UPDATE [Fonction] SET [NomFonction] = @NomFonction WHERE [IdFonction] = @IdFonction">

     

     

    <DeleteParameters>

     

     

    <asp:Parameter Name="IdFonction" Type="Int32" />

     

     

    </DeleteParameters>

     

     

    <UpdateParameters>

     

     

    <asp:Parameter Name="NomFonction" Type="String" />

     

     

    <asp:Parameter Name="IdFonction" Type="Int32" />

     

     

    </UpdateParameters>

     

     

    <InsertParameters>

     

     

    <asp:Parameter Name="NomFonction" Type="String" />

     

     

    </InsertParameters>

    </

     

     

     

     

    asp:SqlDataSource>

    <

     

     

     

     

    asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"

     

     

    DataKeyNames="IdFonction" DataSourceID="SqlDataSource1">

     

     

    <Columns>

     

     

    <asp:BoundField DataField="IdFonction" HeaderText="IdFonction"

     

     

    InsertVisible="False" ReadOnly="True" SortExpression="IdFonction" />

     

     

    <asp:BoundField DataField="NomFonction" HeaderText="NomFonction"

     

     

    SortExpression="NomFonction" />

     

     

    </Columns>

    </

     

     

     

     

    asp:GridView>

     

     

    voici le code de la procedure de la page fonction.ascx.vb

    Protected

     

     

     

     

    Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownListFonction.SelectedIndexChanged

     

     

    If DropDownListFonction.ID = "4" Then

    NewFonctionsl1.Visible =

     

    True

     

     

     

    End If

     

     

    End Sub

    quelqu'un peut il m'aider s'il vous plait

    jeudi 25 mars 2010 14:35
  • Bonjour,

     

    Quand l’utilisateur choisit ‘autre’, vous pouvez afficher un textbox sur la page et demander à l’utilisateur d’introduire sa fonction. Ensuite, vous ajoutez cette valeur dans la table sql et rechargez la page avec les nouvelles valeurs.

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    mardi 30 mars 2010 14:20
  • bonjour,

    merci pour votre reponse mais j'essay de realiser cela, et je n'arrive pas je ne sait pas comment recuperer la valeur autre et l'exploiter, si vous regarder ci-dessus, dans le code vb c'est cela que j'essay de faire.

    la donnée "autre a comme identifiant le numero 4.

     

    mardi 30 mars 2010 14:31
  • Bonjour,

     

    La propreté AutoPostBack du dropdownlist doit avoir la valeur True. Ensuite, attachez une fonction au évènement SelectedIndexChanged et récupérez la valeur sélectée :

     

    protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)

            {

                string i = ((DropDownList)sender).SelectedValue.ToString();

     

            }

     

    A partir de cette valeur, vous pouvez ajouter un nouveau élément dans la base de données.

     

    Cordialement,

    Alex


    Alex Petrescu - MSFT
    mercredi 31 mars 2010 09:09
  • bonjour,

    merci alex pour votre reponse.

    cordialement

    jeudi 1 avril 2010 09:20