您的位置:首页 > 其它

ListView 中的一个低级 BUG

2008-06-26 16:28 260 查看
今天在使用ListView编辑记录时,遇到问题:

在ItemEditing事件中使用EditItem属性经常为null,

protected void ListView1_ItemEditing(object sender, ListViewEditEventArgs e)

{

ListView1.InsertItemPosition = InsertItemPosition.None;

ListView1.EditIndex = e.NewEditIndex;//e.NewEditIndex为0时,ListView1.EditItem总会为null

if (ListView1.EditItem != null)

{

//

}

}

调试了半天才发现,只要当EditIndex=0时(即编辑第一条记录)EditItem属性总是为空

用Reflector反射ListView的EditItem查到原因代码如下:(this._editIndex > 0应该改为this._editIndex >= 0)

public virtual ListViewItem EditItem

{

get

{

if ((this._editIndex > 0) && (this._editIndex < this.Items.Count))

{

return this.Items[this._editIndex];

}

return null;

}

}
后来Google了一下,发现园子里早有朋友反映了这个BUG (第一次用ListView,就抓到BUG),可MS到目前仍未修复。。。

临时的解决方法:用ListView1.Items[ListView1.EditIndex]代替ListView1.EditItem
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: