none
SQLDataSource, Paramètre, Listbox : Fixer un paramètre RRS feed

  • Question

  • Bonsoir,

    Je cherche sur une page unique avec des "panels" a fixer un paramètre dans mon SQLDataSource selon un choix utilisateur dans une checkbox.
    J'ai essayé d'utiliser pour cela l'évènement OnSelecting. Mais j'ai l'impression que cela n'est pas pris en compte.
    Que l'évènement est "levé" dès l'accès à la page (onload). Comment finalement passer un paramètre à un SQLSOURCE dynamiquement. C'est à dire que la listbox ou aure se mette à jour en fonction d"une saisie utilisateur.

    Merci de votre aide.

    Voici le code:

        <asp:ListBox
                    id="ddlCat"
                    Width="400px"
                    BackColor="Pink"
                    SelectedValue='<%# Bind("IDEOPT") %>'
                    DataTextField="LIBOPT"
                    DataValueField="IDEOPT"
                    DataSourceID="sqlDS2"
                    Rows="4"
                    Enabled="true"
                    SelectionMode="Single"
                    CssClass="cssListBoxBlack11"
                    EnableViewState="true"
                    OnSelectedIndexChanged="ddlCat_SelectedIndexChanged"
                    AutoPostBack="True"
                    Runat="server">
                    </asp:ListBox>

    Mons SQLSOURCE

    <asp:SQLDataSource ID="sqlDS2"
            Runat="Server"
            OnSelecting="SqlParameterDS2_Selecting"
            ConnectionString="<%$ ConnectionStrings:myConnString %>"
            ProviderName="System.Data.OracleClient"
            SelectCommand = "MON SELECT"
            DataSourceMode="DataSet">
            <SelectParameters>
                <asp:Parameter Name="LOCALUSER" />
                <asp:Parameter Name="GATYPE" />
            </SelectParameters>
        </asp:SQLDataSource>

    Le code behind:

    Sub SqlParameterDS2_Selecting(ByVal Source As Object, ByVal e As SqlDataSourceSelectingEventArgs)
        
        Dim myName As String = UserIndentity ()
        e.Command.Parameters("LOCALUSER").Value = (myName).ToUpper
        
        If lblRefTyp.Text="BRE" Then
            sqlDS2.SelectParameters("GATYPE").DefaultValue = "5650545" 'Brevet
        End If
        
    End Sub 'SqlParameter_Selecting

    mardi 26 juin 2012 18:22

Réponses

  • Bonjour,

    pour éviter que le chargement soit effectué dés la création de la page, vous ne devez pas affecter la propriété DataSourceID au sein de votre aspx.

    Si votre requête est conditionnée par un choix utilisateur, une fois la saisie effectuée, sur un event de votre choix, affecter la propriété DataSourceID et via l'event Selecting mettez à jour la requête en fonction de la saisie utilisateur.

    Cordialement

    mardi 24 juillet 2012 09:54
    Modérateur