回答 Broam 的问题“有没有办法在数据绑定方法中做到这一点?我宁愿不硬编码“控制 [0]”,因为那太草率了”
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";
}
不幸的是,我还没有找到不使用 Controls[0] 的方法。
在通常的Item事件(ItemDataBound或ItemCreate)中,可以使用ListViewItemEventArgs的e.Item来获取ListViewItem。在 DataBound 事件中,只有一个通用的 EventArgs。
最重要的是,似乎 ((Control)sender).FindControl("Literal1") 也不起作用(从树顶部的列表视图中查找控件),因此使用 Controls[0] 。 FindControl(...)(从 listviewitem 中查找控件)。