C# How to set label text in einem listview?
In meinem codebehind-ich will den Satz, den text für ein label. Hier ist die aspx-code:
<asp:ListView ID="lstRegistrations" runat="server">
<LayoutTemplate>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
<th width="80" align="left">
<asp:Label ID="lblDate" runat="server" Text="<%= GetTranslatedText(7726) %>" />
</th>
<th width="150" align="left">
<asp:Label ID="lblAuthor" runat="server" Text="<%= GetTranslatedText(7728) %>" />
</th>
<th width="290" align="left">
<asp:Label ID="lblRegistration" runat="server" Text="<%= GetTranslatedText(6671) %>" />
</th>
<th width="60" align="left">
<asp:Label ID="lblVersion" runat="server" Text="<%= GetTranslatedText(13) %>" />
</th>
</tr>
<tr>
<td colspan="4" style="height: 3px;"></td>
</tr>
<tr runat="server" id="itemPlaceholder"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr style="background-color:#FFFFD0;">
<td style="padding-left: 3px">
<%# ((DateTime)Eval("Date")).ToString("d-M-yyyy") %>
</td>
<td>
<%# GetStaffNameById((int)Eval("StaffID")) %>
</td>
<td>
<%# Server.HtmlEncode(Eval("Text").ToString())%>
</td>
<td>
<%# Eval("Version") %>
</td>
</tr>
</ItemTemplate>
<AlternatingItemTemplate>
<tr style="background-color: #C89292">
<td style="padding-left: 3px">
<%# ((DateTime)Eval("Date")).ToString("d-M-yyyy") %>
</td>
<td>
<%# GetStaffNameById((int)Eval("StaffID")) %>
</td>
<td>
<%# Server.HtmlEncode( Eval("Text").ToString() )%>
</td>
<td>
<%# Eval("Version") %>
</td>
</tr>
</AlternatingItemTemplate>
</asp:ListView>
In der Spitze, in der Layoutvorlage habe ich 4 labels die Eigenschaft text den ich ändern will. Ich habe versucht, Zugriff auf den Etiketten mithilfe der lstRegistrations.FindControl () - Methode, aber diese Methode nicht die Etiketten. Ich habe auch versucht die Seite.FindControl () - Methode, aber diese Methode entweder nicht finden können, die Label. Dann dachte ich mir, ich erstelle eine Methode und rufen diese in meiner aspx-Seite (siehe mein code). Ich bekomme keine Fehler, aber ich sehe keinen text!
Was mache ich falsch?
InformationsquelleAutor Martijn | 2009-10-02
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie:
Das problem ist, dass die Elemente in der Layoutvorlage sind nicht verfügbar, bis DataBind() aufgerufen in der Listenansicht. So, FindControl gibt null zurück, bevor Sie, dass.
Wie wollen Sie geben den Wert für das label? Wenn es geladen wird? Wenn der Benutzer wählt eine Aktion?
Können Sie implementieren, das ItemDataBound-Ereignis und für jede Zeile den Zugriff auf die Beschriftung, um seine text...
Ihre FindControl() wird nie funktionieren, weil Sie haben eine Menge von labels pro Zeile. Form, in welcher Zeile sollte das FindControl bekommen das label? Sie brauchen, um zu erreichen, um die erste Reihe, und dann die Beschriftung benötigt.