如何从(object sender,ListViewItemEventArgs e)转换对象

时间:2008-12-23 09:18:18

标签: asp.net listview

我正在使用带有以下数据源List<MyObject>

的ListView控件

在我的listview控件上,我有一个OnItemDataBound

我的问题是如何获取MyObject的当前值。即myObj [5] .FirstName

protected void ItemsListViewDataBound(object sender,ListViewItemEventArgs e) { //我想在这里做某种演员

}

2 个答案:

答案 0 :(得分:12)

protected void MyListView_DataBind(object sender, ListViewItemEventArgs e){
  if(e.Item.ItemType == ListViewItemType.DataItem){
    MyObject p = (MyObject)((ListViewDataItem)e.Item).DataItem;
  }
}

您需要进行类型检查,以便在处理标题项时不要尝试执行转换。

答案 1 :(得分:2)

这个可能会有所帮助:

void listview1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    ListViewItem listItem = (ListViewItem)e.Item;
    //or 
    ListViewDataItem listDataItem = (ListViewDataItem)e.Item;

    Label mylabelinItem = listItem.FindControl("labelId") as Label;
}