记录一个之前遇到的问题。使用ListView绑定DataSource,然后在DataSource中的增删改查方法关联的是自己写的DAL层方法,使用的也是自己写的Model层类型。绑定后使用发现:查询、添加、修改这三个方法都很正常,没有问题。但是删除方法有问题了,删不掉数据。经过调试发现在DAL的删除方法被调用时,传入的参数是空的,没有内容。一直没有找到解决的办法。
目前是使用ListView的ItemDeleting事件进行迂回解决,代码如下:
protected void ListView1_ItemDeleting(object sender, ListViewDeleteEventArgs e) { //得到当前操作所处理的数据行 ListViewItem lvi = ListView1.Items[e.ItemIndex]; //通过FindControl获取到数据行中某个数据的值(通过获取相应控件的内容) Label lb = (Label)lvi.FindControl("IdLabel"); //调用DAL层代码进行删除操作 Guid deletingId = Guid.Parse(lb.Text); new PositionDAL().Delete(new Position() { Id = deletingId }); }
这个问题的重点已经不在于如何进行删除操作(因为实在找不到办法怎么直接关联能删除。。。),而是在于如何获取到ListView中,我们删除时到底删的哪一行的数据,获取到其主键内容,删除操作倒是简单了。
不知道还有没有更好的方法来解决这个问题。