Broam der Frage zu beantworten " Gibt es eine Möglichkeit, dies in der datenbasierten Methode zu tun? Ich würde eher hard nicht „Kontrollen [0]“ wie schlampig ist“
protected void ListView1_DataBound(object sender, EventArgs e)
{
ListView mylist = ((ListView)sender);
ListViewItem lvi = null;
if (mylist.Controls.Count == 1)
lvi = mylist.Controls[0] as ListViewItem;
if (lvi == null || lvi.ItemType != ListViewItemType.EmptyItem)
return;
Literal literal1 = (Literal)lvi.FindControl("Literal1");
if (literal1 != null)
literal1.Text = "No items to display";
}
Leider, ich habe einen Weg gefunden, um nicht Bedienelemente zu verwenden [0].
In den üblichen Artikeln Ereignisse ((ItemDataBound oder ItemCreate), Sie können e.Item des ListViewItemEventArgs verwenden, um das ListViewItem abzurufen.Im DataBound-Ereignis gibt es nur ein generisches EventArgs.
Und obendrein scheint es ((Kontroll-) Absender). FindControl ("Literal1") funktioniert auch nicht (finde die Kontrolle aus der Listenansicht am Anfang der Baumstruktur), daher die Verwendung von Controls [0] .FindControl (...) (finde das Control aus dem listviewitem)
+1 - das ist genau das, was ich auch brauchte. Vielen Dank! – jonsidnell
Gibt es eine Möglichkeit, dies in der datengebundenen Methode zu tun? Ich würde "Kontrollen [0]" lieber nicht "hartcodieren", da das schlampig ist. – Broam
Wenn ich '.Controls [0]' nehme ich einen Fehler. Kannst du mir helfen zu verstehen, warum du es brauchst? Es scheint, als ob wir ihm den Index der Kontrolle und den Namen mitteilen, ich verstehe nicht, warum beides notwendig wäre. –