bonjour,
J'ai une liste view et j'essai de générer dynamiquement mon layouttemplate et itemtemplate.
Pour ce faire, j'ai créé des classes itemtemplate et layouttemplate pour sur interface ITemplate.
Je place mon code dans la méthode InstantiateIn.
Au chargement de la page, je déclare des nouveau template pour la listview
Mon problème, c'est le "itemPlaceholder" qui doit être présent dans le layout..
Lorsque je lance ma page, la listview et les templates sont opérationnels mais lorsque je recharge ou valide un bouton etc. j'ai le message d'erreur :
J'ai regardé et essayer différentes choses vu sur le net mais sans effet..Un espace réservé d'élément doit être spécifié dans le ListView 'LV_Essai'. Spécifiez un espace réservé d'élément en affectant la valeur "itemPlaceholder" à la propriété ID d'un contrôle. Le contrôle d'espace réservé d'élément doit également spécifier runat="server"
Merci
Voici mon code :
classe layout :
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 Imports Microsoft.VisualBasic Imports System Imports System.Web Imports System.Web.UI Public Class LayoutTemplate Implements ITemplate Public Sub InstantiateIn(ByVal container As Control) Implements ITemplate.InstantiateIn Dim table = New HtmlGenericControl("table") With { _ .ID = "itemPlaceholderContainer" _ } ' OBLigé de mettre un id itemplaceholder sur un élément Dim tr = New HtmlGenericControl("tr") With { _ .ID = "itemPlaceholder" _ } Dim MyColumns As New List(Of Colonne) MyColumns = GestionParametres.GetColonnesXML() For Each col As Colonne In MyColumns Dim th = New HtmlGenericControl("th") With { _ .InnerText = col.Intitule _ } table.Controls.Add(th) Next table.Controls.Add(tr) container.Controls.Add(table) End Sub End Class
Partager