如何从ListView的OnItemCommand方法访问当前ItemType Item值?

时间:2015-04-20 02:03:35

标签: c# asp.net database listview databound

在aspx页面中:

<asp:ListView ID="ListViewPosts" ItemType="Post" 
SelectMethod="ListViewPosts_GetData" runat="server" 
OnItemCommand="Insert_Comment"
OnItemDataBound="ListViewPosts_ItemDataBound">

        ...
        ...
    </asp:ListView>

代码背后:

protected void Insert_Comment(object sender, ListViewCommandEventArgs e)
{
  ...
  Post p = Item; //where Item stands for the current Post record in ListView.
  ...
}

如果我ListView位于ItemType="Post"; Post是一个数据库表。 如何在代码隐藏方法Item

中访问Post的当前值(代表Insert_Comment表中的当前记录)

我问了question OnItemDataBound方法和代码:
 Post p = e.Item.DataItem as Post效果很好。我为OnItemCommand尝试了相同的代码,但变量Post p获得null值!!。

我可以使用CommandArgument,但我想知道我是否可以像Post方法一样直接获取OnItemDataBound项目。

1 个答案:

答案 0 :(得分:0)

您只能在.DataItem内使用OnItemDataBound。您可以传递Id的{​​{1}}并使用它从数据库中恢复Item

Item