Bonjour,
j'ai le problème suivant :
j'ai une application web qui utilise un GridView.
J'initialise le GridView avec un DataTable, puis je définis le comportement des colonnes avec un Template que j'ai créé.
Mon problème est que lorsque j'affiche mon GridView, la table s'affiche 2 fois.
La première avec les modifications du Template (colonnes éditables...) et la seconde en normal (non éditable).
Avez vous une idée d'ou cela peut provenir?
Voici le code que j'utilise :
L'initialisation du GridView :
Et le code du template :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 GridView1.DataSource = _table.Table ' Ajout des autres colonnes For i As Integer = 0 To _table.Table.Columns.Count - 1 Dim field As TemplateField = New TemplateField() field.HeaderTemplate = New TableTemplate(ListItemType.Header, SetNom(_table.Table.Columns(i).ColumnName)) field.ItemTemplate = New TableTemplate(ListItemType.Item, SetNom(_table.Table.Columns(i).ColumnName)) GridView1.Columns.Add(field) Next GridView1.DataBind()
Je vous remercie d'avance pour votre aide.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 Public Sub InstantiateIn(container As System.Web.UI.Control) Implements System.Web.UI.ITemplate.InstantiateIn Dim lbl As Label Dim txt As TextBox Select Case _templateType Case ListItemType.Header lbl = New Label lbl.Text = _columnName container.Controls.Add(lbl) Case ListItemType.Item txt = New TextBox txt.ID = _columnName txt.Width = New Unit("42px") AddHandler txt.DataBinding, AddressOf txt_databinding container.Controls.Add(txt) End Select End Sub ''' <summary> ''' Méthode définissant le databinding associé au textbox ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> ''' <remarks></remarks> Protected Sub txt_databinding(ByVal sender As Object, ByVal e As EventArgs) Dim txt As TextBox = TryCast(sender, TextBox) Dim container As GridViewRow = TryCast(txt.NamingContainer, GridViewRow) Dim datavalue As Object = DataBinder.Eval(container.DataItem, GetAlias(_columnName)) If Not IsNothing(datavalue) AndAlso Not IsDBNull(datavalue) Then txt.Text = CStr(datavalue) End If End Sub
Partager