需要解释将DataKeyNames传递给代码隐藏

时间:2015-12-28 06:08:20

标签: asp.net entity-framework

我在半天的努力中努力理解从listview获得的“ DatakeyNames ”,它传递了从“EntityDatasource”捕获的实体字段值并存储到DataKeyNames中以供稍后在Code Behind中使用(例如:'EntityDataSource1_Deleted'事件)。

<asp:ListView ID="ListView1" runat="server" DataKeyNames="Id,ImageUrl" DataSourceID="EntityDataSource2" OnItemDeleted="ListView1_ItemDeleted" >

- 在我的代码背后,

protected void EntityDataSource2_Deleted(object sender, EntityDataSourceChangedEventArgs e)
{ 
    string id_ = this.ListView1.DataKeys[0]["Id"].ToString();

    string url_ = this.ListView1.DataKeys[0]["ImageUrl"].ToString();

    ScriptManager.RegisterStartupScript(this, GetType(), "Notification", "alert('check ID:" + id_ + "with Url:" + url_ + "')", true);

} //End of ItemDeleted

我的问题:

  1. 什么是结构“ [0] ”表示在“ DataKeys ”之外使用它的位置。

  2. 如果我将“ [0] ”更改为“ [1] ”,则会获得与“ [ 0]

  3. 如果我用“ [this.listview1.selectedIndex] ”更改“ [0] ”,它将最终进入无限循环或挂在页面中postback.Why?

1 个答案:

答案 0 :(得分:0)

  1. 结构[0]表示索引0处的项目
    1. 结果会有所不同