|
Trouver une ressource
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)
Informations & options pour cette discussion
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
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|