Modifier les champs d'un data grid dans asp.net

Signaler
Messages postés
2
Date d'inscription
mardi 2 août 2005
Statut
Membre
Dernière intervention
3 août 2005
-
Messages postés
41
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
15 juin 2012
-
bon jour
mon probleme
au moment de l'affichage de la page asp.net, j'arrive pas à modifier les champs du datagrid (elle s'affiche comme une image) , et je veux savoir comment rendre les champs du datagrid accessible (comme un textbox)
et merci

3 réponses

Messages postés
41
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
15 juin 2012

Bonjour,

Je peux essayer de t'expliquer mais dis moi quel logiciel tu utilises pour développer ?

Clem
Messages postés
2
Date d'inscription
mardi 2 août 2005
Statut
Membre
Dernière intervention
3 août 2005

j'utilise Micosoft Visual Studio .Net 2003 avec une base de donnée SQL Server
maintenant j'arrives avec un bouton modifier de rendre les champs accessible en ecriture,il me reste d'inserrer cette modification dans la base de données et parla suite de personnaliser ma datagrid cad de choisir le type d'affichage des champs d'un ligne de ma la datagrid (sous forme de dropdown liste...)
et merci pour votre aide
Messages postés
41
Date d'inscription
jeudi 18 septembre 2003
Statut
Membre
Dernière intervention
15 juin 2012

Alors je vais tenter de t'expliquer l'insertion dans la base de données.
Je vais utiliser un exemple car c'est pas évident d'expliquer. j'espère que tu vas comprendre car sans connaître l'application (c'est un exemple qui vient d'un bouquin)

Ce code correspond à l'insertion utiliser dans l'exemple à ce chemin :
http://www.savonsdusoleil.com/casestudy/NouvelleCommande.aspx

// allocation d'un dataset
DataSet myDataSet = new DataSet();

// allocation du SqlDataAdapter utilisé pour la synchronisation des commandes
// (on utilise intentionnellement une instruction SQL ne correspond à aucun
// enregistrement, le but étant uniquement d'initialiser le schéma du DataSet)
SqlDataAdapter CommandAdapter;
string SQL = "SELECT * FROM Commande WHERE ID_Commande=0";

// remplissage de la table Commande du DataSet (il est nécessaire d'effectuer
// le remplissage avant la création de la commande Insert, qui requiert que le
// schéma soit initialisé
CommandAdapter.Fill(myDataSet,"Commande");

// Définition de la commande insert qui réalise la création d'une nouvelle
// commande : associée à une procédure CreerCommande, elle prend en paramètre
// d'entrée l'identifiant du fournisseur et la date de livraison souhaitée
// (respectivement liés aux colonnes ID_Fournisseur et DateLivraison du
// DataSet) et retourne en sortie l'identifiant de la commande créée
SqlCommand myCommand;
// myConnection correction à la SqlConnection
myCommand = new SqlCommand("CreerCommande", myConnection);
myCommand.CommandType = CommandType.StoredProcedure;

SqlParameterCollections p = myCommand.Parameters;

p.Add("@Fournisseurs", SqlDbType.Int,4,"ID_Fournisseur");
p.Add("@DateLivraison", SqlDbType.DateTime,8,"DateLivraison");

SqlParameter OutPutParam;
OurputParam = new SqlParameter("@CommandeID",SqlDbType.Int,4);
OutputParam.Direction = ParameterDirection.Output;
p.Add(OutputParam);

CommandAdapter.InsertCommand = myCommand;

// Allocation du SqlDataAdapter utilisé pour la synchronisation des lignes de
// commandes (encore une fois, on utilise intentionnellement une instruction
// SQL ne correspondant à aucun enregistrement, le but étant uniquement
// d'intialiser le schéma DataSet)
SqlDataAdapter LinesAdapter;
SQL "SELECT * FROM LigneCommande WHERE ID_LigneCommande 0";

LinesAdapter = new SqlDataAdapter(SQL, myConnection);
LinesAdapter.Fill(myDataSet, "LigneCommande");

// Allocation automatique des commandes du SqlDataAdapter grâce à
// l'utilisation de la classe utilitaire SqlCommandBuilder (nous n'avions
// pas pu l'utiliser pour la table Commande en raison de la nécessité de
// recourir à une procédure stockée retournant en sortie le numéro de la
// commande créée)
SqlCommandBuilder myBuilder = new SqlCommandBuilder(LinesAdapter);

// Création d'une nouvelle ligne dans la table Commande du DataSet,
// initialisée à partir des valeurs des contrôles graphiques de l'interface
DataRow myDataRow = myDataSet.Tables["Commande"].NewRow();

myDataRow["ID_Fournisseur"] = ListeFournisseurs.SelectedItem.Value;
myDataRow["DateLivraison"] = Calendrier.SelectedDate;
myDataSet.Tables["Commande"].Rows.Add(myDataRow);

// Synchronisation avec la base de données (une nouvelle ligne est créée
// dans la table COmmande) et récupération grâce à OutputParam, de
// l'identifiant de la nouvelle commande
CommandAdapter.Update(myDataSet,"Commande");
int NewCommandID = (int)OutputParam.Value;

// Création des lignes de commandes dans la table LigneCommande du DataSet,
// à partir du contenu du contrôle serveur DétailCommande (pour chaque ligne
// de la grille, on retrouve le contrôle Qte grâce à la fonction FindControl
// si il n'est pas vide, on crée une nouvelle ligne associée à la référence
// fournisseur correspondante, dont l'identifiant est retrouvé grâce à
// DataKeys)
for (int i=0; i<DetailCommand.Items.Count; i++) {
object myControl = DetailCommand.Items[i].Cells[2].FindControl("QTe");
string Qte = ((TextBox)myControl).Text;
if (Qte!="") {
myDataRow = myDataSet.Tables["LigneCommande"].NewRow();
myDataRow["ID_Commande"] = NewCommandID;
myDataRow["ID_ReferenceFournisseur"] = DetailCommande.DataKeys[i];
myDataRow["Quantite"] = System.Convert.ToInt32(Qte);
myDataSet.Tables["LigneCommande"].Rows.Add(myDataRow);
}
}

// synchronisation avec la base de données (les nouvelles lignes de
// commande sont créées dans la table LigneCommande)
LinesAdapter.Update(myDataSet, "LigneCommande");

Et voilà, j'espère que ça va t'aider