Datgrid

Signaler
Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour,
Voila dans un datagride j'ai le code suivant :


<Columns>

<HeaderStyle HorizontalAlign="Center" CssClass="HeaderStyleR"></HeaderStyle>

' Font-Name="arial" Font-Size="10pt" runat="server" ForeColor="Black" BackColor="#FFCC33" CausesValidation="false"/>


</Columns>
Je souhaite definir le bouton avec un style depuis le code behind.
datagride.column.... ????
Je n'y parviens pas!
Thierry

7 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonjour

abonne toi à l'evenenement itemCreated de ton datagrid ensuite tu pourra faire quelque chose comme ca

ctype(e.items.findcontrol("tonbutton"), button).attributes.add("style", "blablabla")

:)


<HR>
Cyril - MVS - MCP ASP
Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010

As tu un exemple pour s'abonner à l'evenenement itemCreated du datgrid ? je ne comprends pas tout.

Thierry
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
private sub mondatagrid_itemcreated(jemesouviensplusdesparams) handles mondatagrid.itemcreated

ou alors en C# ca donne mondatagrid.itemcreated += new eventHandler(...) // de toute facon il y a de la complétion suffit d'appuyer sur tab


<HR>
Cyril - MVS - MCP ASP
Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010

Voila j'ai crée le code suivant :


Private
Sub ListeVOGrid1_Item_Created(
ByVal sender
As System.Object,
ByVal e
As DataGridItemEventArgs)
Handles ListeVOGrid1.ItemCreated



CType(e.Item.FindControl("BoutDetail1"), Button).CssClass = "BoutDetailR"



End
Sub
'Item_Created

La création c'est passée sans problème avec l'intellisens
Mais à l'éxecution j'ai l'erreur suivante :


La référence d'objet n'est pas définie à une instance d'un objet.
Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.

Erreur source:


Ligne 119 :    End Sub
Ligne 120 :    Private Sub ListeVOGrid1_Item_Created(ByVal sender As System.Object, ByVal e As DataGridItemEventArgs) Handles ListeVOGrid1.ItemCreated
Ligne 121 :        CType(e.Item.FindControl("BoutDetail1"), Button).CssClass   = "BoutDetailR"
Ligne 122 :
Ligne 123 :    End Sub 'Item_Created



Fichier source : c:\inetpub\wwwroot\groupekayser\ListeVO1.ascx.vb Ligne : 121

Trace de la pile:


[NullReferenceException: La r&#233;f&#233;rence d'objet n'est pas d&#233;finie &#224; une instance d'un objet.]
groupekayser.ListeVO1.ListeVOGrid1_Item_Created(Object sender, DataGridItemEventArgs e) in c:\inetpub\wwwroot\groupekayser\ListeVO1.ascx.vb:121
System.Web.UI.WebControls.DataGrid.OnItemCreated(DataGridItemEventArgs e)
System.Web.UI.WebControls.DataGrid.CreateItem(Int32 itemIndex, Int32 dataSourceIndex, ListItemType itemType, Boolean dataBind, Object dataItem, DataGridColumn[] columns, TableRowCollection rows, PagedDataSource pagedDataSource)
System.Web.UI.WebControls.DataGrid.CreateControlHierarchy(Boolean useDataSource)
System.Web.UI.WebControls.BaseDataList.OnDataBinding(EventArgs e)
System.Web.UI.WebControls.BaseDataList.DataBind()
groupekayser.ListeVO1.ListeVO(String sSortExp) in c:\inetpub\wwwroot\groupekayser\ListeVO1.ascx.vb:228
groupekayser.ListeVO1.Page_PreRender(Object sender, EventArgs e) in c:\inetpub\wwwroot\groupekayser\ListeVO1.ascx.vb:151
System.Web.UI.Control.OnPreRender(EventArgs e)
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Control.PreRenderRecursiveInternal()
System.Web.UI.Page.ProcessRequestMain()



Thierry
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
T'as essayé en mettant un point d'arret pour voir ce que contenait cette variable e ?

j'etais presque sur qu'ellle contenait la ligne avec tout ce qui va bien dedans, et si tu fais la meme chose dans le item_databound ? peut etre que lors qu'il le créer c'est trop tot pour trouver le bouton :s

si ca marche toujours pas j'essaierai :p


<HR>
Cyril - MVS - MCP ASP
Messages postés
121
Date d'inscription
lundi 20 octobre 2003
Statut
Membre
Dernière intervention
24 juin 2010

La variable e contient :

+ e {System.Web.UI.WebControls.DataGridItemEventArgs} System.Web.UI.WebControls.DataGridItemEventArgs

j'ai essayé aussi avec item_databound et meme erreur!

Thierry
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonjour,

cela faisait pas mal de temps que j'avais envie de faire un article sur le debugage en asp.net voici pour toi : http://www.aspfr.com/tutorial.aspx?ID=384


<HR>
Cyril - MVS - MCP ASP