Bonjour,
2 questions qui découlent l'une de l'autre :
1°) comment dans un "datalist" avec un "DataSourceID" basé sur une Procédure stockée faire apparaître le label, ici nommé "LabelValeurEcran" avec par exemple le texte "aucun" si la procédure stockée ne ramène aucun enregistrement.
En effet dans ce cas la partie <HeaderTemplate> du datalist apparait bien mais pas la partie <ItemTemplate> ce qui est normal puisqu'il n'y a pas d'enregistrement.
J'ai essayé dans le codebehind de traiter les évènements "ItemDataBound", "itemCreated","init", "load" et "prerender" du "datalist" mais je ne peux atteindre ce label quand la procédure stockée ne renvoie aucun enregistrement, voici le code :
mais ce code fonctionne très bien dès qu'il y a au moins un enregistrement de retourné par la procédure stockée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim etat As Label = CType(e.Item.FindControl("Ecran"), Label) If etat IsNot Nothing Then etat.Text = "aucun" End If
Voici le code de la partie "datalist"
2°) n'y arrivant pas j'ai ajouté dans ma procédure stockée un paramètres @acces qui me retourne le chiffre 0 s'il n'y a pas de lignes de retournées qui correspond ici à "<asp:Parameter DefaultValue="" Direction="InputOutput" Name="acces" Type="Int32" />" mais je ne sais ni récupérer cette info ni où l'a traiter pour faire apparaître le label, ici nommé
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 <asp:SqlDataSource runat="server" ID="dsEcran" ConnectionString="<%$ ConnectionStrings:csServeurProd %>" SelectCommand="MonitoringEcran" SelectCommandType="StoredProcedure" InsertCommandType="Text" > <SelectParameters> <asp:Parameter Name="dateDebut" Type="String" /> <asp:Parameter Name="dateFin" Type="String" /> <asp:Parameter DefaultValue="" Direction="InputOutput" Name="acces" Type="Int32" /> </SelectParameters> </asp:SqlDataSource> <asp:DataList ID="DataListEcran" runat="server" DataSourceID="dsEcran" > <HeaderTemplate> <asp:Label ID="LabelTitreEcran" runat="server" Text="Ecrans" Width="220" > </asp:Label> </HeaderTemplate> <ItemTemplate> <asp:Label ID="LabelValeurEcran" runat="server" Text='<%# Eval("Ecran") %>' Width="90" > </asp:Label> </ItemTemplate> </asp:DataList>
"LabelValeurEcran" avec par exemple le texte "aucun".
D'avance merci de vos réponses.
Partager