Salut,
J'ai une page contenant un ListView et un DataPager. Selon la page en cours je souhaite produire du javascript dynamiquement.
Pour cela j'aimerais utiliser l'évènement ListView.DataBound afin d'accéder à toutes les données du ListView. Mais je me trouve aveclorsque je souhaite utiliser un DataItem dans ListView.DataBound.La référence d'objet n'est pas définie à une instance d'un objet
Voici le code aspx :le code vb :
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 <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="test_Default" Trace="true" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div id="carte" style="width:400px; height:400px;"></div> <asp:DataPager ID="DataPager1" PagedControlID="ListView1" PageSize="5" runat="server"> <Fields> <asp:NextPreviousPagerField PreviousPageText="<<" NextPageText=">>" /> </Fields> </asp:DataPager> <asp:ListView ID="ListView1" DataSourceID="SqlDataSource1" runat="server"> <LayoutTemplate> <asp:PlaceHolder runat="server" ID="itemPlaceholder"></asp:PlaceHolder> </LayoutTemplate> <ItemTemplate> <p><%#Eval("REFERENCE")%></p> </ItemTemplate> </asp:ListView> <asp:SqlDataSource ID="SqlDataSource1" ConnectionString="<%$ ConnectionStrings:BD %>" SelectCommandType="StoredProcedure" SelectCommand="PSe" runat="server"> </asp:SqlDataSource> </form> </body> </html>Lorsque je fais appelle à un DataItem dans ItemDataBound le response.write se déroule correctement, mais cela ne me convient que moyennement car cet évènement survient cinq fois. Or, je souhaite utiliser DataBound car l'évènement ne survient qu'une fois et j'aimerais accéder à toutes les données d'un coup.
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 Imports System.Data Partial Class test_Default Inherits System.Web.UI.Page Protected Sub ListView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListView1.DataBound For Each item As ListViewDataItem In sender.items Dim ligne As DataRowView = item.DataItem Response.Write(ligne.Item("REFERENCE") & "<br />") '-- NullReferenceException Next End Sub Protected Sub ListView1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound Dim ligne As DataRowView = CType(e.Item, ListViewDataItem).DataItem Response.Write(ligne.Item("REFERENCE") & "<br />") '-- OK End Sub End Class
Voyez-vous où je veux en venir? Peut-être avez-vous une meilleure façon de faire, je serais preneur avec grand plaisir.
Si je n'ai pas été clair n'hésitez pas à revenir vers moi.
Merci par avance.
Partager