Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : evenement ajouter une ligne dans une datagrid [ Archives Visual Basic / Bases de données ] (mdelahais)

mercredi 2 juin 2004 à 10:20:31 | evenement ajouter une ligne dans une datagrid

mdelahais

Bonjour à tous,
Je rempli une datagrid gràace à une requête sur une table. La première donnée de ma datagrid est la clé. Je peux également ajouter ou modifier les données directement depuis la datagrid. Mais il me reste un petit problème. Si j'ajoute une nouvelle ligne, il faut que j'ajoute la clé. Mais je voudrai que la clé soit calculée de manière à éviter de remettre une clé existant déjà.
Pour cela, je pensai calculer la clé dès qu'on ajoute une ligne, mais je n'arrive pas à trouver quel évenement y correspond?
Merci de votre aide
Matthieu

mercredi 2 juin 2004 à 10:50:31 | Re : evenement ajouter une ligne dans une datagrid

gaa179

Salut,

Sur l'évènement OnAddNew(), j'ajoute la valeur dans le champ du recordset qui est utlisé comme DataSource du Datagrid.

Private Sub DataGrid1_OnAddNew()
'Ajoute la relation vers la facture
With RsArtFactSub
If IsNull(!Id_Fact) Then
!Id_Fact = TId_Facture.Text
End If
End With

End Sub

A+

mercredi 2 juin 2004 à 11:04:48 | Re : evenement ajouter une ligne dans une datagrid

mdelahais

J'ai oublié de préciser que je bossais sur vb.net... le OnAddNew n'existe pas dans la liste des évenements proposés. J'ai tout de même essayé, mais ça ne marche pas...
Tu n'as pas une autre idée?
Merci

mercredi 2 juin 2004 à 15:14:31 | Re : evenement ajouter une ligne dans une datagrid

lejuif


Utilises tu un DataAdapter et un dataset?
Y'a t'il un compteur automatique sur ta clef?

mercredi 2 juin 2004 à 15:26:34 | Re : evenement ajouter une ligne dans une datagrid

mdelahais

Je fais ma requête avec un dataset et un dataadapter. Ensuite, je le place dans un tablestyle que je charge dans la tablesytle de ma datagrid parce que j'ai utilisé des combobox dans ma datagrid.
Par contre, il n'y a pas de compteur automatique.

Sinon, j'étais parti sur une autre solution :
1. je compte le nb de lignes ds ma datagrid
2. qd je clique sur la datagrid, je regarde si c'est une nouvelle ligne gràace au nb de lignes que j'ai compté en &
3. Si c'est une nouvelle ligne, je calcule la nouvelle clé et je l'insère dans la datagird... Maintenant, je cherche comment placé une valeur dans une datagird en fonction de ses coordonnées (1ere colonne, derniere ligne)

mercredi 2 juin 2004 à 17:37:37 | Re : evenement ajouter une ligne dans une datagrid

lejuif


tu peux aussi creer une ouvelle ligne dans ton dataset

dim newrow as nomDataset.NomTableRow = monDataSet1.NEWnomTableROW
(nomDataSet1 correspond a l'instance du dataset, nomdataset est l'objet)

ensuite tu remplis les champs que tu as besoin dans ta ligne de dataset (dont ta clef, par ex newrow.clef = X)

Puis tu rajoutes la ligne au dataset
nomdatasets.nomTable.add(newrow)

(puis
NomdataAdapter.update(nomDataset1)
uniquement si tu veux mettre la base de données a jour en fonction des données de ton dataset)

et tu finis par NomDatagrid.databind() (pour remplir le datagrid avec les données de ton dataset)

Ps : avec cette méthode il est possible de remplir les valeurs directement dans la datagrid mais pour cela il faut utiliser le EditItemindex du datagrid .
Si besoin je peux toujours poster du code source pour que ce soit plus clair)

Voila j'espere que ça te sera utile


Sinon tu peux toujours utiliser les evenements ItemCommand (il faudra alors données des comands names a certains objets de ton datagrid comme des boutons par exemple) ou updateCommand (nécessite un objet ayant un commandName="Update")



jeudi 10 juin 2004 à 09:41:30 | Re : evenement ajouter une ligne dans une datagrid

mdelahais

Oui, si éventuellement tu avais du code source, ça pourrait m'aider.
Merci

jeudi 10 juin 2004 à 16:08:18 | Re : evenement ajouter une ligne dans une datagrid

lejuif



Voila un exemple de page ,en esperant que cela t'aide

*************************************************
********************code vb***********************
<code>
Sub genererDgRemise_Facturefournisseur()
daRemise_FactureFournisseur.SelectCommand.Parameters("@facturefournisseur_id").Value = facturefournisseur_id
daRemise_FactureFournisseur.Fill(DsRemise_facturefournisseur1)
dgRemise_FactureFournisseur.DataBind()

End Sub

Private Sub dgRemise_FactureFournisseur_CancelCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgRemise_FactureFournisseur.CancelCommand
dgRemise_FactureFournisseur.EditItemIndex = -1
Call genererDgRemise_Facturefournisseur()
Call desactiverbouton()
End Sub

Private Sub dgRemise_FactureFournisseur_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgRemise_FactureFournisseur.DeleteCommand

daRemise_FactureFournisseur.SelectCommand.Parameters("@facturefournisseur_id").Value = facturefournisseur_id
daRemise_FactureFournisseur.Fill(DsRemise_facturefournisseur1)
DsRemise_facturefournisseur1.FactureFournisseurRemise.FindByFactureFournisseurRemise_id(CInt(dgRemise_FactureFournisseur.DataKeys(e.Item.ItemIndex))).Delete()
daRemise_FactureFournisseur.Update(DsRemise_facturefournisseur1)
Call genererDgRemise_Facturefournisseur()

End Sub

Private Sub dgRemise_FactureFournisseur_EditCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgRemise_FactureFournisseur.EditCommand
daRemise_FactureFournisseur.SelectCommand.Parameters("@facturefournisseur_id").Value = facturefournisseur_id
daRemise_FactureFournisseur.Fill(DsRemise_facturefournisseur1)
dgRemise_FactureFournisseur.EditItemIndex = e.Item.ItemIndex

Call genererDgRemise_Facturefournisseur()

End Sub

Private Sub dgRemise_FactureFournisseur_UpdateCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridCommandEventArgs) Handles dgRemise_FactureFournisseur.UpdateCommand

daRemise_FactureFournisseur.SelectCommand.Parameters("@facturefournisseur_id").Value = facturefournisseur_id
daRemise_FactureFournisseur.Fill(DsRemise_facturefournisseur1)

Dim tbdesignation As TextBox = CType(e.Item.FindControl("tbdesignation"), TextBox)
Dim tbmontant As TextBox = CType(e.Item.FindControl("tbmontant"), TextBox)
If Not IsNothing(tbdesignation) Then
Dim rowchange As dsRemise_facturefournisseur.FactureFournisseurRemiseRow = DsRemise_facturefournisseur1.FactureFournisseurRemise.FindByFactureFournisseurRemise_id(CInt(dgRemise_FactureFournisseur.DataKeys(e.Item.ItemIndex)))

If IsNothing(rowchange) Then
Dim rownew As dsRemise_facturefournisseur.FactureFournisseurRemiseRow = DsRemise_facturefournisseur1.FactureFournisseurRemise.NewFactureFournisseurRemiseRow
With rownew
.FactureFournisseur_id = facturefournisseur_id
.Montant = CDbl(Replace(tbmontant.Text, ",", "."))
.Designation = tbdesignation.Text
End With
DsRemise_facturefournisseur1.FactureFournisseurRemise.Rows.Add(rownew)
Else
With rowchange
.Designation = tbdesignation.Text
.Montant = CDbl(Replace(tbmontant.Text, ",", "."))
End With

End If

daRemise_FactureFournisseur.Update(DsRemise_facturefournisseur1)
DsRemise_facturefournisseur1.Clear()
End If
dgRemise_FactureFournisseur.EditItemIndex = -1
Call activerbouton()

Call genererDgRemise_Facturefournisseur()

End Sub

Private Sub dgRemise_FactureFournisseur_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgRemise_FactureFournisseur.ItemDataBound
Call appliquerstyledg(e)
Call CalculerMontantTTC(e)
End Sub


Private Sub btnAjout_Click(ByVal sender As System.Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles btnAjout.Click
Call desactiverbouton()

Dim RowNew As dsRemise_facturefournisseur.FactureFournisseurRemiseRow = DsRemise_facturefournisseur1.FactureFournisseurRemise.NewFactureFournisseurRemiseRow
With RowNew
.Designation = ""
.Montant = 0
.FactureFournisseur_id = facturefournisseur_id
End With

DsRemise_facturefournisseur1.FactureFournisseurRemise.Rows.Add(RowNew)

dgRemise_FactureFournisseur.EditItemIndex = 0
Call genererDgRemise_Facturefournisseur()
End Sub
</code>

**************************************************
****************code html correspondant**************

<Code>

<ASP:IMAGEBUTTON id="btnAjout" runat="server" ImageUrl="/gda_v3/common/image/butajout1.jpg"></ASP:IMAGEBUTTON></H4>
<P><asp:DataGrid id=dgRemise_FactureFournisseur runat="server" DataSource="<%# DsRemise_facturefournisseur1 %>" DataMember="FactureFournisseurRemise" DataKeyField="FactureFournisseurRemise_id" AutoGenerateColumns="False" SHOWFOOTER="True">
<COLUMNS>
<ASP:TEMPLATECOLUMN HeaderText="Désignation">
<ITEMTEMPLATE>
<asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Designation") %>'>
</ASP:LABEL>
</ITEMTEMPLATE>
<EDITITEMTEMPLATE>
<asp:TextBox id=tbdesignation runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Designation") %>'>
</ASP:TEXTBOX>
<ASP:REQUIREDFIELDVALIDATOR id="RequiredFieldValidator1" runat="server" ErrorMessage="Entrer une désignation"
ControlToValidate="tbdesignation">*</ASP:REQUIREDFIELDVALIDATOR>
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN HeaderText="Montant">
<ITEMTEMPLATE>
<asp:Label id=Label2 runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Montant", "{0:C}") %>'>
</ASP:LABEL>
</ITEMTEMPLATE>
<FOOTERTEMPLATE>
<ASP:LABEL id="lblMontantTotal" runat="server">0 ?</ASP:LABEL>
</FOOTERTEMPLATE>
<EDITITEMTEMPLATE>
<asp:TextBox id=tbMontant runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Montant") %>'>
</ASP:TEXTBOX>?
<ASP:REQUIREDFIELDVALIDATOR id="RequiredFieldValidator2" runat="server" ControlToValidate="tbMontant" ErrorMessage="Entrer un montant">*</ASP:REQUIREDFIELDVALIDATOR>
<ASP:REGULAREXPRESSIONVALIDATOR id="RegularExpressionValidator1" runat="server" ControlToValidate="tbMontant" ErrorMessage="Le montant entré est incorrect"
ValidationExpression="\d*(,\d{1,2}|\.\d{1,2}|)">*</ASP:REGULAREXPRESSIONVALIDATOR>
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
<ASP:TEMPLATECOLUMN>
<ITEMTEMPLATE>
<ASP:IMAGEBUTTON id="btnEdit" ImageUrl="/gda_v3/common/image/butedit1.jpg" runat="server" CommandName="Edit"></ASP:IMAGEBUTTON> 
<ASP:IMAGEBUTTON id="btnDelete" ImageUrl="/gda_v3/common/image/butsup1.jpg" runat="server" CommandName="Delete"
CausesValidation="False"></ASP:IMAGEBUTTON>
</ITEMTEMPLATE>
<EDITITEMTEMPLATE>
<ASP:IMAGEBUTTON id="btnValider" ImageUrl="/gda_v3/common/image/butvalider1.jpg" runat="server" CommandName="Update"></ASP:IMAGEBUTTON> 
<ASP:IMAGEBUTTON id="btnCancel" ImageUrl="/gda_v3/common/image/butannuler1.jpg" runat="server" CommandName="Cancel"
CausesValidation="False"></ASP:IMAGEBUTTON>
</EDITITEMTEMPLATE>
</ASP:TEMPLATECOLUMN>
</COLUMNS>
</ASP:DATAGRID></P>

</code>



Cette discussion est classé dans : ligne, ajouter, datagrid, clé, ajoute


Répondre à ce message

Sujets en rapport avec ce message

Evenement ajouter une ligne dans une datagrid [ par mdelahais ] Bonjour,J'ai une petite question. J'ai affiché le contenu d'une table (en fait, une partie de la table sur une requête) dans une datagrid et je souhai Evenement ajouter une ligne dans un datagrid [ par mdelahais ] Bonjour,Je travaille sous vb.net 2003.J'ai chargé le contenu d'une table dans un datagrid. Une fois la datagrid chargée, j'ai la possibilité d'ajouter curseur d'un datagrid ... [ par 187bundy ] Slt ;-)Voici mon pb : Quand j'ajoute une ligne dans mon DataGrid et que le nombre de lignes dépace la taile affichée du DataGrid, une barre de défilem URGENT: Comment faire pour ajouter une ligne dans un Datagrid avec les données qui vont avec? [ par Tioneb ] Salut,alors voilà déjà je n'y comprend rien aux bases de données Access, SQL, etc . Du coup j'ai pensé à un système perso de base de donnée. Bon là n' Empecher l'utilisateur d'ajouter une ligne dans un DataGrid [ par wedge69 ] Salut,Je suis étudiant, actuellement en stage et je rencontre un problème.Je travaille sous VB net.Voilà, j'ai créé un Datagrid dans lequel, j'ai affi ajouter ligne a un datagrid de X colonnes [ par tump ] Je suis desespereejai un probleme pour ajouter des lignes a mon datagrid, sachant que je ne sais pas combien il contient de colonnesmatable.Rows.Add(N DataGrid [ par pjouy ] Bonjour,Je crée une DataGridView en code. J'y ajoute une colonne qui contient plusieurs lignes. Jusque là, facile.Je souhaite y ajouter une valeur que DataGrid VB6 [ par delaux ] Bonjour,J'ai un problème avec un DataGrid.Je souhaite offrir la possibilité d'ajouter une ligne dans le datagrid.Pour celà, je met la propriété AllowA Colorer DataGrid + Pas d'insert [ par jobtunisieyasser ] Je n'arrive pas à trouver le bon code pour colorer des ligne dans une Data Grid.Je cherche aussi à supprimer la ligne vide qui s'ajoute automatiquemen DataGrid et sélection d'une ligne [ par dheroux ] Bonjour,Je travaille dans un Datagrid non couplé à un DataSet.Connaissant l'index d'une ligne du DataGrid, je voudrais que celle-ci soit sélectionnée


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,296 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.