Salut,
Je cherche un moyen d'ajouter par programmation un control a un itemtemplate dans un datagridview mais je n'ai pas trouvé.
Je vous prie de m'apporter vos idées ?
Merci.
Salut,
Je cherche un moyen d'ajouter par programmation un control a un itemtemplate dans un datagridview mais je n'ai pas trouvé.
Je vous prie de m'apporter vos idées ?
Merci.
ça fait une journée que je suis planté devant ma machine sans aucuneresultat
j'ai une grid view avec un itemtemplate qui contiens une checkbox (c'est la seule cilumn crée manuellement)
je lie une datatable avec la gridview en sachant que autogeneratecolumn=false
quant la page poste au serveur les checkbox disparaissent
j'éspère que quelqu'un me metra sur le bon chemain
J'ai pas tout saisi, au premier affichage ta grid comporte bien ta colonne avec les checkbox et quand une action est réalisée (post back) cette colonne disparait?
exactement
mais ce n'est pas la column qui disparait mais les checkbox qui sont dedans
voila la gridview
voila la methode qui charge la grid
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <asp:GridView ID="dgvAutorisation" runat="server" Width="100%" Font-Names="Arial" Font-Size="Small" CaptionAlign="Left" CellPadding="8" EmptyDataText="Aucun élément trouvé" Font-Bold="True" Font-Italic="True" UseAccessibleHeader="False" AutoGenerateSelectButton="True" AutoGenerateColumns="False"> <EmptyDataRowStyle BackColor="#33CCFF" /> <SelectedRowStyle BackColor="#99CCFF" /> <HeaderStyle BackColor="Black" BorderColor="#3366FF" BorderStyle="Double" BorderWidth="2px" Font-Bold="False" Font-Names="Andalus" Font-Size="Small" ForeColor="White" /> </asp:GridView>
et voila la classe GridViewTemplate
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
33 Private Shadows Sub Charger_DGV(ByVal dgv As GridView, ByVal dt As DataTable, ByVal IsLastColumnChecked As Boolean) Dim ColCount As Integer = dgv.Columns.Count For i As Integer = 0 To ColCount - 1 'effacer tout columns dgv.Columns.RemoveAt(0) Next For i As Integer = 0 To dt.Columns.Count - 1 If dt.Columns.Item(i).DataType Is GetType(System.Boolean) Then Dim gridcol As New CheckBoxField gridcol.DataField = dt.Columns.Item(i).ColumnName gridcol.HeaderText = dt.Columns.Item(i).ColumnName dgv.Columns.Insert(i, gridcol) Else Dim gridcol As New BoundField gridcol.DataFormatString = "{0:dd/MM/yyyy}" gridcol.DataField = dt.Columns.Item(i).ColumnName gridcol.HeaderText = dt.Columns.Item(i).ColumnName gridcol.HtmlEncode = False dgv.Columns.Insert(i, gridcol) End If Next Dim tf As New TemplateField 'GridViewTemplate est une classe de creation dynamique de itemtemplate tf.HeaderTemplate = New GridViewTemplate(ListItemType.Header, IsLastColumnChecked) tf.ItemTemplate = New GridViewTemplate(ListItemType.Item, IsLastColumnChecked) dgv.Columns.Add(tf) dgv.AutoGenerateColumns = False dgv.DataSource = dt dgv.DataBind() End Sub
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
33
34
35
36
37
38
39
40 Imports Microsoft.VisualBasic Public Class GridViewTemplate Implements ITemplate Dim templateType As ListItemType Dim checkedvalue As Boolean Sub New(ByVal type As ListItemType, ByVal checked As Boolean) templateType = type checkedvalue = checked End Sub Sub InstantiateIn(ByVal container As Control) _ Implements ITemplate.InstantiateIn Dim lc As New Literal() Select Case templateType Case ListItemType.Header 'lc.Text = "<B>" & columnName & "</B>" Dim chb As New CheckBox chb.ID = "chbSelectTout" chb.Text = "Select tout" chb.AutoPostBack = True chb.Checked = checkedvalue container.Controls.Add(chb) Case ListItemType.Item 'lc.Text = "Item " & columnName Dim chb As New CheckBox chb.Checked = checkedvalue container.Controls.Add(chb) Case ListItemType.EditItem Dim tb As New TextBox() tb.Text = "" container.Controls.Add(tb) Case ListItemType.Footer lc.Text = "<I>Footer</I>" container.Controls.Add(lc) End Select End Sub End Class
bon merci avant tout
voila une opinion qui peut aider.![]()
Partager