2010-07-26 4 views
0

Mon code actuel pour tenter de définir la largeur des lignes sur un gridview est:Impossible de définir GridView largeurs de ligne sur RowDataBound

protected void RowDataBound(Object sender, GridViewRowEventArgs e) 
     { 
      if (e.Row.RowType == DataControlRowType.Header) 
      { 
       foreach (DataControlFieldHeaderCell dcfhc in e.Row.Cells) 
       { 
        dcfhc.Width = 100; 
       } 
      } 
      else 
      { 
       foreach (DataControlFieldCell dcfc in e.Row.Cells) 
       { 
        dcfc.Width = 100; 
       } 
      } 
     } 

Mais cela suffit de garder tous la valeur par défaut de largeur! Qu'est-ce que je fais mal?

EDIT: J'ai déjà essayé ce code!

PoolToDBHeaders.DataSource = new DataView(headerTable); 
     PoolToDBHeaders.DataBind(); 
     foreach (DataControlField dcf in PoolToDBHeaders.Columns) 
     { 
      dcf.ItemStyle.Width = 100; 
     } 
     PoolToDBHeaders.DataBind(); 
+0

Voulez-vous dire Hauteur? Ou peut-être des largeurs de colonne? – Ben

+0

Largeur de colonne, j'ai édité avec le code que j'ai essayé d'employer pour placer des largeurs de colonne qui ne travaille pas non plus. –

Répondre

0

... pourquoi définissez-vous les largeurs dans un événement de liaison de données? Il suffit de les définir (en utilisant la propriété Columns du DataGrid) avant la liaison de données en premier lieu.

Les définir dans un événement de liaison de données est stupide de toute façon, car vous ne pouvez pas avoir des largeurs différentes pour des lignes différentes.

+0

J'ai édité la question avec le code que j'ai déjà essayé que je crois est ce que vous parliez, cela ne marche pas non plus! –

+0

@jacobnlsn: Définir "ne fonctionne pas". Avez-vous une erreur? Êtes-vous sûr que DataControlField est le bon type? Est-ce que 'DataGridColumn' n'est pas suffisant? –

+0

J'utilise un GridView, et il n'existe pas un objet GridViewColumn, ne fonctionne pas signifie, ne modifie pas le gridview après que le code traverse la boucle for. –

Questions connexes