IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Modification au sein d'une Grid


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 220
    Par défaut Modification au sein d'une Grid
    Bonjour,

    Après quelques essais infructueux je me résouds à poster voir si quelqu'un n'a pas une petite idée car là je sèche...

    Ce que je veux faire est tout bête, c'est modifier des enregistrements directement dans une grid. d'habitude je passe par formulaire mais comme ma (mes j'en aurais plusieurs à faire) table ne comporte que 2 champs j'ai préféré le faire dans mon grid directement.
    Au passage, j'utilise une RadGridView de Télérik mais le princippe avec une GridView est le même.

    voici ma Grid:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    <radG:RadGrid ID="RadGrid1" AllowMultiRowSelection="True" AllowMultiRowEdit="True"
                Skin="WebBlue" runat="server" AllowAutomaticDeletes="True" AllowAutomaticInserts="True"
                Width="97%" PageSize="14" AllowAutomaticUpdates="True" AllowPaging="True" AutoGenerateColumns="False"
                DataSourceID="SessionDataSource1" ShowStatusBar="True" EnableAJAX="True" EnableAJAXLoadingTemplate="True"
                LoadingTemplateTransparency="50" GridLines="None" 
                onitemcreated="RadGrid1_ItemCreated">
                <PagerStyle Mode="Slider" />
                <ClientSettings>
                    <Selecting AllowRowSelect="true" />
                </ClientSettings>
                <MasterTableView CommandItemDisplay="Top" DataKeyNames="Code_Conseil" DataSourceID="SessionDataSource1"
                    EditMode="EditForms" AutoGenerateColumns="False" Width="100%">
                    <CommandItemTemplate>
                        <div style="padding:10px 0px;">
                            Custom command item template &nbsp;
                        <asp:LinkButton Style="vertical-align: bottom" ID="btnEditSelected" runat="server"
                            CommandName="EditSelected" CausesValidation="false" Visible='<%# RadGrid1.EditIndexes.Count == 0 %>'><img style="border:0px;vertical-align:middle;" alt="" src="Fichiers/Images/Edit.gif" /> 
                            Edit Selected Products</asp:LinkButton>
                        <asp:LinkButton ID="btnUpdateEdited" runat="server" CommandName="UpdateEdited" Visible='<%# RadGrid1.EditIndexes.Count > 0 %>'><img style="border:0px;vertical-align:middle;" alt="" src="Fichiers/Images/Update.gif" /> 
                            Update Products</asp:LinkButton>
                            &nbsp;
                        <asp:LinkButton ID="btnCancel" runat="server" CommandName="CancelAll" CausesValidation="false" Visible='<%# RadGrid1.EditIndexes.Count > 0 || RadGrid1.MasterTableView.IsItemInserted %>'><img style="border:0px;vertical-align:middle;" alt="" src="Fichiers/Images/Cancel.gif" /> 
                            Cancel editing</asp:LinkButton>
                            &nbsp;
                        <asp:LinkButton ID="LinkButton2" runat="server" CommandName="InitInsert" Visible='<%# !RadGrid1.MasterTableView.IsItemInserted %>'><img style="border:0px;vertical-align:middle;" alt="" src="Fichiers/Images/AddRecord.gif" /> 
                            Add new Product</asp:LinkButton>
                        <asp:LinkButton ID="LinkButton3" runat="server" CommandName="PerformInsert" Visible='<%# RadGrid1.MasterTableView.IsItemInserted %>'><img style="border:0px;vertical-align:middle;" alt="" src="Fichiers/Images/Insert.gif" /> 
                            Add this Product</asp:LinkButton>
                            &nbsp;
    <asp:LinkButton ID="LinkButton1" OnClientClick="javascript:return confirm('Delete all selected Products?')"
    runat="server" CommandName="DeleteSelected" CausesValidation="false"><img style="border:0px;vertical-align:middle;" alt="" src="Fichiers/Images/Delete.gif" /> 
                            Delete Selected Products</asp:LinkButton>
                            &nbsp;&nbsp;&nbsp;
                        <asp:LinkButton ID="LinkButton4" runat="server" CommandName="RebindGrid"><img style="border:0px;vertical-align:middle;" alt="" src="Fichiers/Images/Refresh.gif" /> 
                            Refresh Product list</asp:LinkButton>;
                        </div>
                    </CommandItemTemplate>
    <RowIndicatorColumn Visible="False">
    <HeaderStyle Width="20px"></HeaderStyle>
    </RowIndicatorColumn>
     
    <ExpandCollapseColumn Visible="False">
    <HeaderStyle Width="19px"></HeaderStyle>
    </ExpandCollapseColumn>
                    <Columns>
                        <radG:GridEditCommandColumn ButtonType="ImageButton" UpdateImageUrl="Fichiers\Images\Update.gif"
                            EditImageUrl="Fichiers\Images\Edit.gif" InsertImageUrl="Fichiers\Images\Insert.gif"
                            CancelImageUrl="Fichiers\Images\Cancel.gif" UniqueName="EditCommandColumn">
                            <HeaderStyle Width="30px" />
                        </radG:GridEditCommandColumn>
                        <radG:GridClientDeleteColumn ConfirmText="Delete this product?" ButtonType="ImageButton"
                            ImageUrl="Fichiers\Images\Delete.gif" CommandName="Delete" Text="Delete"
                            UniqueName="DeleteColumn">
                            <HeaderStyle Width="20px" />
                            <ItemStyle HorizontalAlign="Center" />
                        </radG:GridClientDeleteColumn>
                        <radG:GridClientSelectColumn HeaderStyle-Width="40px" >
                            <HeaderStyle Width="40px"></HeaderStyle>
                        </radG:GridClientSelectColumn>
                        <radG:GridTemplateColumn HeaderText="Code_Conseil" SortExpression="Code_Conseil" UniqueName="TemplateColumn"
                            EditFormColumnIndex="0">
                            <HeaderStyle Width="80px" />
                            <ItemTemplate>
                                <asp:Label runat="server" ID="lblCode" Text='<%# Eval("Code_Conseil") %>'></asp:Label>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator1"
                                    ControlToValidate="tbCode" ErrorMessage="This field is required!" runat="server">
                                </asp:RequiredFieldValidator>
                                <br/>
                                <asp:TextBox runat="server" ID="tbCode" Text='<%# Bind("Code_Conseil") %>'></asp:TextBox><span
                                style="color: Red">*</span>
                                <br/>
                            </EditItemTemplate>
                        </radG:GridTemplateColumn>
                        <radG:GridTemplateColumn HeaderText="Libelle_Conseil" SortExpression="Libelle_Conseil" UniqueName="TemplateColumn"
                            EditFormColumnIndex="1">
                            <HeaderStyle Width="80px" />
                            <ItemTemplate>
                                <asp:Label runat="server" ID="lblLibelle" Text='<%# Eval("Libelle_Conseil") %>'></asp:Label>
                            </ItemTemplate>
                            <EditItemTemplate>
                                <asp:RequiredFieldValidator ID="RequiredFieldValidator2"
                                    ControlToValidate="tbLibelle" ErrorMessage="This field is required!" runat="server">
                                </asp:RequiredFieldValidator>
                                <br/>
                                <asp:TextBox runat="server" ID="tbLibelle" Text='<%# Bind("Libelle_Conseil") %>'></asp:TextBox><span
                                style="color: Red">*</span>
                                <br/>
                            </EditItemTemplate>
                        </radG:GridTemplateColumn>
                    </Columns>
                    <EditFormSettings ColumnNumber="2" CaptionDataField="Code_Conseil" CaptionFormatString="Edit properties of Product {0}">
                        <FormTableItemStyle Wrap="False"></FormTableItemStyle>
                        <FormCaptionStyle CssClass="EditFormHeader"></FormCaptionStyle>
                        <FormMainTableStyle GridLines="Horizontal" CellSpacing="0" CellPadding="3" BackColor="White"
                            Width="100%" />
                        <FormTableStyle CellSpacing="0" CellPadding="2" CssClass="module" Height="110px"
                            BackColor="White" />
                        <FormTableAlternatingItemStyle Wrap="False"></FormTableAlternatingItemStyle>
                        <EditColumn ButtonType="ImageButton" UpdateImageUrl="Fichiers\Images\Update.gif"
                            EditImageUrl="Fichiers\Images\Edit.gif" InsertImageUrl="Fichiers\Images\Insert.gif"
                            CancelImageUrl="Fichiers\Images\Cancel.gif" InsertText="Insert Order" UpdateText="Update record"
                            UniqueName="EditCommandColumn1" CancelText="Cancel edit">
                        </EditColumn>
                        <FormTableButtonRowStyle HorizontalAlign="Right" CssClass="EditFormButtonRow"></FormTableButtonRowStyle>
                    </EditFormSettings>
                </MasterTableView>
            </radG:RadGrid>

    Et mon DataSource:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <asp:SqlDataSource ID="SessionDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:prodchimiquesConnectionString %>"
                SelectCommand="SELECT Code_Conseil, Libelle_Conseil FROM [Conseil_Prudence]"
                DeleteCommand="DELETE FROM [Conseil_Prudence] WHERE [Code_Conseil] = @Code_Conseil" InsertCommand="INSERT INTO Conseil_Prudence(Code_Conseil, Libelle_Conseil) VALUES (@Code_Conseil, @Libelle_Conseil)"
                UpdateCommand="UPDATE [Conseil_Prudence] SET [Code_Conseil] = @Code_Conseil, [Libelle_Conseil] = @Libelle_Conseil WHERE [Code_Conseil] = @Code_Conseil AND [Libelle_Conseil] = @Libelle_Conseil"
                OldValuesParameterFormatString="original_{0}"
                ConflictDetection="CompareAllValues">
                <DeleteParameters>
                    <asp:Parameter Name="original_Code_Conseil" Type="String"/>
                </DeleteParameters>
                <UpdateParameters>
                    <asp:Parameter Name="Code_Conseil" Type="String"/>
                    <asp:Parameter Name="Libelle_Conseil" Type="String"/>
                    <asp:Parameter Name="original_Code_Conseil" Type="String"/>
                    <asp:Parameter Name="original_Libelle_Conseil" Type="String"/>
                </UpdateParameters>
                <InsertParameters>
                    <asp:Parameter Name="Code_Conseil" Type="String" />
                    <asp:Parameter Name="Libelle_Conseil" Type="String" />
                </InsertParameters>
            </asp:SqlDataSource>
    Le problème est que lorsque je veux mettre à jour mes champs, rien ne se passe, de même pour une insertion.
    En revanche lorsque je fais un delete, la ligne est supprimée visuellement mais lorsque je clique sur refresh j'ai l'erreur suivante:

    Vous avez spécifié que votre commande Supprimer compare toutes les valeurs du SqlDataSource 'SessionDataSource1' mais le dictionnaire passé pour values est vide. Passez un dictionnaire valide pour Supprimer ou redéfinissez votre mode à OverwriteChanges.

  2. #2
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Tes parametres n'ont deja pas le meme nom entre les requetes et les parametres, peut etre est-ce cela le probleme

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 220
    Par défaut
    Effectivement, pour l'insert et l'update ça fonctionne maintenant... quel boulet.. tout ca par ce que j'avais vu sur le site de télérik que dans les requètes au lieu de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Code_Conseil = @Code_Conseil
    , il utilisaient Par contre pour le delete j'ai toujours la même erreur, mais j'ai une idée pour y palier, je posterais si ça marche

    Merci tortue tu es un genie

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 220
    Par défaut
    Bon après avoir pas mal cherché sur le net et éssayé plusieurs choses, j'ai réussi à faire un boutton de suppression:
    dans mon <Columns>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <radG:GridTemplateColumn>
                        <ItemTemplate>
                            <asp:ImageButton ID="LinkButton1" ImageUrl="Fichiers\Images\Delete.gif" runat="server" CommandName="suppr" CommandArgument='<%# Eval("Code_Conseil") %>'></asp:ImageButton></ItemTemplate>
                    </radG:GridTemplateColumn>
    et dans mon .cs:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
            {
                if (e.CommandName == "suppr")
                {
                    String code = e.CommandArgument.ToString();
                    delete(code);
                }
            }
    Tout simplement

    Le truc c'est que la RadGrid est finalement bien différente de la Grid par défaut..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/01/2014, 11h13
  2. Modification d'une ImageView au sein d'une ListView
    Par kirasakuya dans le forum Composants graphiques
    Réponses: 5
    Dernier message: 12/12/2011, 14h26
  3. Réponses: 3
    Dernier message: 15/05/2011, 18h01
  4. Modification de composant ds une boucle
    Par sinsenono dans le forum C++Builder
    Réponses: 10
    Dernier message: 22/02/2004, 12h46
  5. Modification en transact d'une colonne
    Par NoisetteProd dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 06/02/2004, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo