begin process at 2012 02 11 17:55:02
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Formulaire / Winforms / Controls

 > 

Datagrid de souffrance!!!


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

Datagrid de souffrance!!!

vendredi 15 juin 2007 à 17:11:58 | Datagrid de souffrance!!!

blueangel

Bonjour,
j'essai de contruire dynamiquement un datagrid à partir d'un fichier XML.
pour ça j'ai défini des Templatecolumn pour créer le contenu de mon datagrid.
quand il s'agit d'une clé primaire dans ma table crée dans le datagrid.
un BoundColumn avec une propriéte BoundColumn.ReadOnly = true;
du cout quand j'essai de mettre à jour mon datagrid je ne peux pas récupérer la valeur
de la clé primaire pour faire un update.


public class GenericItem : ITemplate
{
private readonly string column;
//private bool validate;
public GenericItem(string column)
{
this.column = column;
}
public void InstantiateIn(Control container)
{
Literal l = new Literal();
l.DataBinding += new EventHandler(this.BindData);
container.Controls.Add(l);
}
public void BindData(object sender, EventArgs e)
{
Literal l = (Literal)sender;
DataGridItem container = (DataGridItem)l.NamingContainer;
l.Text = ((DataRowView)container.DataItem)[column].ToString();

}
}
public class ValidateEditItem : ITemplate
{
private readonly string column;
public ValidateEditItem(string column)
{
this.column = column;
}
public void InstantiateIn(Control container)
{
TextBox tb = new TextBox();
tb.DataBinding += new EventHandler(this.BindData);
container.Controls.Add(tb);
tb.ID = column;
RequiredFieldValidator rfv = new RequiredFieldValidator();
rfv.Text = "please write!";
rfv.ControlToValidate = tb.ID;
rfv.Display = ValidatorDisplay.Dynamic;
rfv.ID = "validate" + tb.ID;
container.Controls.Add(rfv);
}
public void BindData(object sender, EventArgs e)
{
TextBox tb = (TextBox)sender;
DataGridItem container = (DataGridItem)tb.NamingContainer;
tb.Text = ((DataRowView)container.DataItem)[column].ToString();
}
}
public TemplateColumn DynamicColumns(string column, bool isEditable)
{
TemplateColumn genericcolumn = new TemplateColumn();
genericcolumn.HeaderText = column;
genericcolumn.ItemTemplate = new GenericItem(column);

if (isEditable)
{
genericcolumn.EditItemTemplate = new ValidateEditItem(column);
}

return genericcolumn;
}

la maniére dont je construit les colones
if (Type != null)
{
//cas d'une clé primaire
BoundColumn ColPk = new BoundColumn();
ColPk.DataField = c.ColumnName;
ColPk.SortExpression = c.ColumnName;
ColPk.ReadOnly = true;
Grid.Columns.Add(ColPk);
}else
{
//cas d'une Template column
TemplateColumn col;
col = DynamicColumns(c.ColumnName, true);
col.SortExpression = c.ColumnName;
Grid.Columns.Add(col);
}

Voici la fonction qui se déclenche au moment de l'update.

public void GridUpdate(Object sender, DataGridCommandEventArgs e)
{
//elle renvoie null
e.Item.FindControl("key").Text ;
//grid.Datakeys est vide
grid.DataKeys[e.Item.ItemIndex];
}
Merci pour votre aide.

blueangel13



Cette discussion est classée dans : public, datagrid, column, container, tb


Répondre à ce message

Sujets en rapport avec ce message

Get a DataGrid column's index in a MouseUp event, not a MouseDown () [ par clem06 ] Hello all,I have a winform with two DataGrid, my goal is to drag a column's name of the first DataGrid and drop it in a cell of the second DataGrid. Refresh d'un datagrid [ par orja35 ] Salut à tous,Voilà mon problème: dans une win form, j'ai datagrid, que je remplis au chargement de la win form, grâce à ma fonction ChargeDataGrid():p Heritage entre class [ par thebigboss ] Salut,je sais que ma question va paraitre super simple pour la plupart mais pour moi c'est un vrai casse-tête.Voilà, j'ai un projet dans lequel j'appe Utiliser un objet public [ par mfabio1902 ] Bonjour,J'ai une fenêtre Form1 qui possède une DataGrid.J'ai créé cet objet par glissé-déposé et le code CS de Form1 est vide.J'aimerais utiliser et m Création Intelligence Artificiel pour jeu 2d [ par Mokost ] Bonjour a tous,Il y a peu de temps j'ai mis cette source utilisant gdi sur csharp.fr :http://www.csharpfr.com/codes/JEU-FAUT-ALIGNER-COULEURS-CASSER-B supprimer une ligne à partir DataGrid [ par jadoui ] DataSet +struct [ par drcmomo ] Bonsoir tout le monde,J'ai un petit soucis j'aimerais bien si possible un peu d'aide SVP!Je travailles sur IHM contient des champs de saisis.J'ai une Probleme ImageButton dans un Datagrid [ par azraeht ] Bonjout à tous! Voilà ça fait un moment que je tourne autour d'un problème que je ne parviens pas à résoudre... Dans une page web, je dispose d'un D L'enumération en C# [ par LordOfTheShadow ] Hello, tout le monde!!! J'ai trop du mal avec les énumérations alors si quelqu'un peut m'aider...Tout d'abord je travaille sur un UserControl. Je voud Problème lors de la détection de mes Addin-in (System.Addin) [ par teddyalbina ] Bonjour j'ai un soucis avec System.Addin qui ne détecte pas mes addins. Cela fait plusieurs jours que je cherche une solution mais je sèche donc voici


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,905 sec (4)

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