J'ai un ListView sur ma page de paiement avec un ItemTemplate qui construit une table d'articles commandés par le client. Je veux ajouter un total dans le pied de la table, je le balisage suivant:Remplir ListView avec les données du serveur
<asp:ListView ID="lvOrderSummary" runat="server">
<LayoutTemplate>
<table id="tblOrderSummary">
<tr>
<td><b>Title</b></td>
<td><b>Cost</b></td>
</tr>
<asp:PlaceHolder ID="itemPlaceholder" runat="server" />
<tr>
<td><b>Total Cost:</b></td>
<td><%# GetTotalCost().ToString()%></td>
</tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%#Eval("Title") %></td>
<td><%#Eval("Cost") %> </td>
</tr>
</ItemTemplate>
</asp:ListView>
J'ai une méthode côté serveur appelé GetTotalCost qui retourne la valeur que je demande. Le problème que j'ai est que cette méthode n'est jamais appelée. J'ai aussi essayé et au lieu d'utiliser:
<td><%# GetTotalCost().ToString()%></td>
J'ai essayé d'utiliser
<td id="tdTotal" runat="server"></td>
---------------
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
TableCell td = ((TableCell)this.FindControl("lvOrderSummary_tdTotal"));
}
}
votre chargement de page est incomplète car il ne fait rien d'autre que trouver la cellule –
@John - désolé, c'est juste un échantillon, la variable td renvoie null. – Fermin