begin process at 2012 05 27 22:40:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

Base de données

 > 

SQL Server

 > 

InserButton


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

InserButton

samedi 17 janvier 2009 à 11:58:43 | InserButton

fakii

bonjour;
j'ai posé une question depuis 2 jours et je n'ai reçu aucune réponse!!!

je reformule la question: je veux faire l'insertion d'un enregistrement dans la source de donnée via le contrôle GridView en utiliant une colonne de type CommandField.
mon GridView et rempli et à coté je dois avoir la possibilité de faire l'ajout . mais je sais pas comment le faire!

y'a quelqu'un qui pourrait m'aider svp?

samedi 17 janvier 2009 à 21:16:37 | Re : InserButton

ggtry

Bonsoir,

"patience et longueur de temps font plus que force ni que rage".
Sauf erreur, un GridView n'a pas d'insert dans ses commandfields.
D'autre part, avoir un bouton "insert" sur chaque cellule d'une colonne serait plutôt bizarre, puisqu'il s'agit de faire une nouvelle entrée dans la table, et non pas de changer quelque chose à la ligne sur laquelle se trouverait le button...

Pour passer par le gridview, une solution possible est d'ajouter des textbox dans le footer avec un bouton "insérer". Je ne sais pas comment insérer un contrôle dans le footer en asp, mais c'est possible en vb, par exemple. C'est juste un peu ennuyeux pour la gestion des événements...
Dans l'exemple ci-dessous, un button est mis dans la première cellule du footer, et des textbox dans les cellules 2 et 3 :

 Protected Sub GridView1_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Call creation()
    End Sub
   
    Sub creation()     
        GridView1.FooterRow.Cells(0).Controls.Clear()
        GridView1.FooterRow.Cells(2).Controls.Clear()
        GridView1.FooterRow.Cells(3).Controls.Clear()
        Dim bt As Button = New Button
        bt.Text = "Insérer"
        bt.ID = "bt"
        Dim tb1 As New TextBox
        Dim tb2 As New TextBox
        tb1.ID = "tb1"
        tb2.ID = "tb2"
        GridView1.FooterRow.Cells(0).Controls.Add(bt)
        GridView1.FooterRow.Cells(2).Controls.Add(tb1)
        GridView1.FooterRow.Cells(3).Controls.Add(tb2)  
        AddHandler bt.Click, AddressOf btinsert   
    End Sub

    Protected Sub GridView1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs)  
        Call creation()   
    End Sub

    Protected Sub btinsert(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim tb1 As TextBox = CType(GridView1.FooterRow.FindControl("tb1"), TextBox)
        Dim tb2 As TextBox = CType(GridView1.FooterRow.FindControl("tb2"), TextBox)
        Dim com As String = "INSERT INTO TaTable (Champ1, Champ2t) VALUES ('" & tb1.Text & "'," & tb2.Text & ")"
        SqlDataSource1.InsertCommand = com
        SqlDataSource1.Insert()
    End Sub

GGtry

samedi 17 janvier 2009 à 21:39:38 | Re : InserButton

fakii

bonsoir;

dans les anciennes versions de Vs.net n'existait pas l'ajout dans la colonne CommandField mais ça existe dans la version 2008.
j'ai cherché dans le site de microsoft j'ai trouvé qu'il mettent la propriété AutoGenerateRows à false hors  moi je trouve pas cette propriété j'ai juste AutoGenerateColumns.

en tt cas merci pour ta réponse, je vais voir le essayer avec le code que tu m'a envoyé.

 

dimanche 18 janvier 2009 à 14:24:32 | Re : InserButton

ggtry

Réponse acceptée !
Bonjour,

Je crois que tu confonds gridview et detailsview, ce dernier contrôle admettant l'insert et ayant une propriété AutoGenerateRows.
Si tu veux faire l'insert par le detailsview, tu peux mettre son DefaultMode à "Insert" en spécifiant un insertcommand.

GGtry
dimanche 18 janvier 2009 à 17:22:19 | Re : InserButton

fakii

salut!
merci pour ta réponse, j'ai vérifié sur le site de microsoft ils ont précisé que insertButton n'est prit en compte que pour certains controles comme le DetailsView, mais je me demande qu'elle est son utilité dans un gridView, si ça existe il doit servire à quelque chose!!!

autre question, j'ai fait l'edition puis lamise à jour d'un enregistremnt dans une source de donnée mais je dois cliquer 2 fois sur "modifier" pour qu'il me donne la possibilitéb de saisir les valeurs que je veux. la même chose se passe avec la pagination, je dois cliquer 2 fois pour aller à une autre page.

merci pour ton aide

dimanche 18 janvier 2009 à 19:35:12 | Re : InserButton

ggtry

Bonsoir,

Le code donné ci-dessus te permettra de faire un insert directement à partir du gridview : il marche aussi avec une pagination. Le truc embêtant est qu'il faut appeler deux fois la création du button et des textbox, du fait que l'insert provoque un nouveau "bind" de la gridview. D'où le clear des controles puisque sur un postback normal, sans insert, la gridview ne sera pas rebindée et les contrôles apparaîtront deux fois... La requête n'est pas paramétrée, donc danger...

Pour le second problème, je ne vois pas. Cela arrive parfois avec du javascript, et le problème doit se poser de ce côté. Il ne se passe rien du tout lors du premier clic ? ou y a-t-il quand même un post, mais sans effet ? N'ayant pas le problème de mon côté, je n'en comprends pas la raison. As-tu par hasard de l'ajax sur ta page ?
Sinon, montre ton code, pour essayer de reproduire le problème.


GGtry
lundi 19 janvier 2009 à 12:27:53 | Re : InserButton

fakii


dans Page_Load j'écris

' connection à la base de donnée

......
'je remplis mon dataset

da.Fill(ds,

"table" )

'dt c'est mon datatable


dt = ds.Tables("table")

If Page.IsPostBack = False Then

GridV.DataSource = dt

GridV.DataBind()

End If


End
Sub

'dans l'événement RowEditing j'écris:

GridV.EditIndex = e.NewEditIndex

End Sub

'dans l'événement RowUpdating j'écris

Dim T As TextBox

T = GridV.Rows(e.RowIndex).Cells(2).Controls(0)

Dim id As Integer = GridView2.DataKeys(e.RowIndex).Value

'com est mon objet command

com.CommandText =

"UPDATE  Table  SET chp='" & T.Text & "' WHERE identifiant= '" & id & "'"

com.ExecuteNonQuery()


Response.Redirect(

"mapage.aspx" )

End Sub
lundi 19 janvier 2009 à 12:28:37 | Re : InserButton

fakii


dans Page_Load j'écris

' connection à la base de donnée

......
'je remplis mon dataset

da.Fill(ds,

"table" )

'dt c'est mon datatable


dt = ds.Tables("table")

If Page.IsPostBack = False Then

GridV.DataSource = dt

GridV.DataBind()

End If


End
Sub

'dans l'événement RowEditing j'écris:

GridV.EditIndex = e.NewEditIndex

End Sub

'dans l'événement RowUpdating j'écris

Dim T As TextBox

T = GridV.Rows(e.RowIndex).Cells(2).Controls(0)

Dim id As Integer = GridV.DataKeys(e.RowIndex).Value

'com est mon objet command

com.CommandText =

"UPDATE  Table  SET chp='" & T.Text & "' WHERE identifiant= '" & id & "'"

com.ExecuteNonQuery()


Response.Redirect(

"mapage.aspx" )

End Sub
lundi 19 janvier 2009 à 19:09:30 | Re : InserButton

ggtry

Bonjour,

Je ne suis pas sûr, car je n'utilise pas en général les datasets et les datatables. Mais il est possible que tu aies un problème avec le databind. Je ne suis pas sûr de comprendre exactement comment tu fais, mais il se peut que le databind opéré sur le load empêche que les événements d'édition ou de pagination soient pris en compte du premier coup.
Essaie de rebinder à ta source dans ces événements... (il me semble que c'est pour cela que tu utilises response.redirect, mais ce n'est pas a priori une bonne idée, notamment si tu as une pagination).

GGtry


Cette discussion est classée dans : question, gridview, inserbutton


Répondre à ce message

Sujets en rapport avec ce message

question simple sur une gridview [ par erefdatacomputing ] Bonjour à tous !!!Sous VisualWeb Developer 2005 Express, sur une Form (avec 3 textbox, un bouton, 1 AccessDataSource, et 1 GridView), dans la partie S cursor oracle [ par kooroza ] Bonjour,J'ai créé une page aspx qui contient * un gridview listant les données d'une table sql Oracle (environ 300 lignes)* un bouton déterminant le s GridView et Rafraichissement [ par erefdatacomputing ] Bonjour à Tous !!!Dans VisualWeb Developer 2005 Express, j'ai une 'Form', contenant :- 1 AccessDataSource- 1 GridView- 3 TextBox- 2 ButtonLa GridView [Erreur] Ajax + export GridView vers Excel [ par EMSIEN ] salut tout le monde,j'ai un soucis lorsque j'utilise l'UpdatePanel dans une page ou j'exporte le contenu d'un GridView vers Excel, en enlevant l'Updat Ajouter des lignes à un gridview [ par yanis7518 ] Salut a tousvoila j'ai un gridview et je voudrai le remplir à partir de données (qui ne provienne pas d'une base de données) que je récupère d'une aut Comment accéder aux textbox générés par les gridview? [ par ov3rdoze ] Bonjour à tousEncore une question de débutantJ'ai un gridview qui affiche certains champs d'une table.Le gridview affiche également un bouton "Editer" Aide DataSet [ par Joe051 ] Bonjour a tous .j'ai un probleme avec mon dataset.Voila je passe une requete et je voudrais que lorsque ma requete ne retourne aucun resultat mon data Templates dans GridView SANS SQLDATASOURCE ? [ par georgeduke ] Bonjour, Est-il possible d'utiliser les templates dans un GridView sans utiliser l'objet SQLDataSource ?? En gros Binding de propriété de UserControl contenu dans un GridView [ par fred2734 ] Bonjour,J'ai crée un user control que j'utilise dans une colonne template d'un gridview ... Les données du gridview sont chargées via un dataset.Je do Création un GridView Pour la saisi [ par dj200812002 ] bonjour,    mon probléme c'est que je veux faire un GridView de saisi pour des opérations comptables.c'est-a-dir de faire la saisi dans la GridView sa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales