Mon application web affiche la liste des membres et je voudrais afficher l'âge de chacun au lieu de leur date de naissance.
Protected Sub DataList1_OnDataBinding(ByVal sender As Object, ByVal e As System.EventArgs)
Dim birthdateLabel As Label = CType(DataList1.FindControl("birthdateLabel"), Label)
Dim ageLabel As Label = CType(DataList1.FindControl("ageLabel"), Label)
Dim birthdate As Date = CType(birthdateLabel.Text, Date)
ageLabel.Text = CType(DateDiff(DateInterval.Year, Now, birthdate), String)
End Sub
...
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Getmembers" TypeName="MemberDetails">
<SelectParameters>
<asp:Parameter DefaultValue="" Name="Filter" Type="String" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:DataList ID="DataList1" runat="server" DataSourceID="ObjectDataSource1" RepeatColumns="2" RepeatDirection="Horizontal" OnDataBinding="DataList1_OnDataBinding">
<ItemTemplate>
<div class="membercard">
<div style="float: left; padding: 0 5px 0 0;">
<asp:image ID="ImageThumbnail1" runat="server" imageURL='<%# Eval("PhotoURL") %>' />
</div>
<h3>
<asp:Label ID="titleLabel" runat="server" Text='<%# Cstr(Eval("LastName")) & ", " & Cstr(Eval("FirstName")) %>' />
</h3>
<p>
<asp:Label ID="birthdateLabel" runat="server" Text='<%# Cstr(Eval("birthdate")) %>' Visible=false />
Age:
<asp:Label ID="ageLabel" runat="server" /> ans
</p>
<p>
<asp:Label ID="cityLabel" runat="server" Text='<%# preformat(Cstr(Eval("City"))) %>' />
<asp:Label ID="provinceLabel" runat="server" Text=' <%# preformat(Cstr(Eval("Province"))) %>' />
<asp:HyperLink ID="HyperLink1" runat="server" ImageURL="~/images/email.gif" NavigateUrl='<%# "mailto:" & Cstr( Eval("Email"))%>' />
</p>
<p>
<asp:Label ID="graduateLabel" runat="server" Text='<%# "Finissant: " & Cstr(Eval("Graduate")) %>' />
<asp:Label ID="yearsLabel" runat="server" Text=' <%# preformat(Cstr(Eval("Years"))) %>' />
</p>
<div class="clearcard">
</div>
</div>
</ItemTemplate>
</asp:DataList>
Lorsque je l'exécute, j'ai l'erreur suivante;
Détails de l'exception: System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
Erreur source:
Ligne 52 : Dim birthdateLabel As Label = CType(DataList1.FindControl("birthdateLabel"), Label)
Ligne 53 : Dim ageLabel As Label = CType(DataList1.FindControl("ageLabel"), Label)
Ligne 54 : Dim birthdate As Date = CType(birthdateLabel.Text, Date)
Ligne 55 : ageLabel.Text = CType(DateDiff(DateInterval.Year, Now, birthdate), String)
Ligne 56 : End Sub |
Merci.