Bonsoir...
objectif : charger en behind les colonnes de ma table <table id="datatable1" ..... car je dois afficher des tableaux avec des colonnes différentes en fonction des utilisateurs ( les tableaux n'ont pas le meme nombre de colonne ni les meme intitulés)
j'ai utilisé un repeater ... jusque la tout est o dans affichage recherche filtre issue de la jquery.dataTables...et toute la suite.
j'ai cherché sur internet un moyen de remonter les colonnes dynamiquement ....
j'ai trouvé avec OnItemDataBound ......pas de probleme d'affichage 'est ok
PAR CONTRE : je n'ai plus les actions de recherche , tri , responsive ...
Quelqu'un peut il m'ai de je suis pas un expert ( loin de la)
un morceau aspx ..
mon code behind .. pas très propre
Code aspx : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <asp:Repeater ID="rpt" runat="server" OnItemDataBound="Repeater1_ItemDataBound"> <%-- OnItemDataBound="Repeater1_ItemDataBound"--%> <HeaderTemplate> <table id="datatable1" class="display responsive nowrap" style="width: 100%" > </HeaderTemplate> <ItemTemplate> <tr class="ccie_celluletableau"> <td class="ui-widget-content"><%# Eval("Société").ToString()%></td> <td class="ui-widget-header ui-corner-all"><%# Eval("Ferme").ToString()%></td> <td class="ui-widget-header ui-corner-all"><%# Eval("Bâtiment").ToString()%></td>
merci de votre aide .. ou de vos idées .... ou d'autres solutions...
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 Protected Sub Repeater1_ItemDataBound(ByVal sender As Object, ByVal e As RepeaterItemEventArgs) If e.Item.ItemType = ListItemType.Header Then Dim t As DataTable = New DataTable() Dim cmd As SqlCommand = New SqlCommand("charge_sitquot_poussin", con) cmd.Parameters.AddWithValue("@refsociete", "%") cmd.Parameters.AddWithValue("@refferme", "%") cmd.Parameters.AddWithValue("@refbatiment", "%") cmd.CommandType = CommandType.StoredProcedure Dim da As SqlDataAdapter = New SqlDataAdapter(cmd) t = New DataTable() da.Fill(t) Dim l1 As Literal = New Literal() With { .ID = "l1", .Text = "<thead><tr class='ccie_entetetableau'>" } e.Item.Controls.Add(l1) For Each column As DataColumn In t.Columns Dim lbl As Label = New Label() With { .ID = "lbl" & column.ColumnName, .Text = "<th>" & column.ColumnName & "</th>" } e.Item.Controls.Add(lbl) Next Dim l3 As Literal = New Literal() With { .ID = "l3", .Text = "</tr><thead></HeaderTemplate>" } e.Item.Controls.Add(l3) End If End Sub
EMmanuel
Partager