none
Récupérer une valeur d'un champ Invisible (DataGrid) RRS feed

  • Question

  • Bonjour à tous ! 

    Voila mon soucis : J'ai un DataGridView contenant deux colonnes, une troisième est présente, contenant un ID mais avec la propriété Visible à False. 

    J’exécute une requête update via le bouton modifier disponible par 

    <asp:CommandField ShowEditButton="True" />

    Voici ma requête : 

    UPDATE    aspnet_Users
    SET              UserName = @UserName, LoweredUserName = @LoweredUserName
    WHERE     (UserId = @UserId)

    Mon GridView : 

    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
            AutoGenerateColumns="False" DataSourceID="SqlDataSource1">
            <Columns>
                <asp:BoundField DataField="UserId" HeaderText="UserId" 
                    SortExpression="UserId" Visible="false" />
                <asp:BoundField DataField="UserName" HeaderText="UserName" 
                    SortExpression="UserName" />
                <asp:BoundField DataField="LoweredUserName" HeaderText="LoweredUserName" 
                    SortExpression="LoweredUserName" />            
                <asp:CommandField ShowEditButton="True" />
            </Columns>
        </asp:GridView>

    Alors mon soucis est que lorsque mon Visible est à True, tout se passe normalement, cependant lorsqu'il est sur False, impossible d'exécuter ma requête, j'obtiens le message d'erreur suivant : 

    System.Data.SqlClient.SqlException: La variable scalaire "@UserId" doit être déclarée.

    Une idée ? 


    • Modifié Krishn4k lundi 24 mars 2014 13:24
    lundi 24 mars 2014 13:24

Réponses

  • Dans ce ca vous devez avoir :

    Protected Sub OnRowCreated(sender As Object, e As GridViewRowEventArgs) handles GridView1.RowCreated e.Row.Cells(columnIndex).Visible = False End Sub

    RowCreated c'est un évènement du DataGridView qui est déclenchée après la création du chaque ligne.

    Cordialement,


    Aurel BERA, MSFT
    MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
    S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.


    • Marqué comme réponse Krishn4k mardi 25 mars 2014 10:21
    • Modifié Aurel Bera mardi 25 mars 2014 11:03 remplacer OnRowCreated avec RowCreated
    mardi 25 mars 2014 09:58

Toutes les réponses