ItemCommand Update和ItemUpdate在ListView中不工作

ItemCommand Update和ItemUpdate在ListView中不工作,listview,user-controls,Listview,User Controls,我似乎无法让我的Listview更新命令正常工作。这是我的数据网格: 修订 文件# 标题 从…起 到 此列表不包含任何项目。 文件编号: 标题: 修订自: 致: 和我的ItemCommand事件: protectedvoid lvECOItems\u ItemCommand(对象发送方,ListViewCommandEventArgs e) { Label ecoItemIDLabel=(Label)e.Item.FindControl(“IDLabel”); string id=ecoIt

我似乎无法让我的Listview更新命令正常工作。这是我的数据网格:


修订
文件#
标题
从…起
到
此列表不包含任何项目。
文件编号:
标题:
修订自:
致:
和我的
ItemCommand
事件:

protectedvoid lvECOItems\u ItemCommand(对象发送方,ListViewCommandEventArgs e)
{
Label ecoItemIDLabel=(Label)e.Item.FindControl(“IDLabel”);
string id=ecoItemIDLabel.Text;
//从ListView获取列表项id
如果(!String.IsNullOrEmpty(this.ecoID)和&!String.IsNullOrEmpty(id))
{
如果(如CommandName==“删除”)
{
ECOItemsRepository ECOItemsRepository=新ECOItemsRepository();
ECOItems ECOItems=新的ECOItems();
ecoItems.ECOID=this.ECOID;
ecoItems.ID=Int32.Parse(ID);
ecoItems repository.Delete(ecoItems);
}
else if(e.CommandName==“更新”)
{
ECOItemsRepository ECOItemsRepository=新ECOItemsRepository();
ECOItems ECOItems=新的ECOItems();
Label IDLabel=(Label)e.Item.FindControl(“IDLabel”);
TextBox txtDocumentNumber=(TextBox)e.Item.FindControl(“txtDocumentNumber”);
TextBox txttitle=(TextBox)e.Item.FindControl(“txttitle”);
TextBox txtRevisionFrom=(TextBox)e.Item.FindControl(“txtRevisionFrom”);
TextBox txtTo=(TextBox)e.Item.FindControl(“txtTo”);
ecoItems.ECOID=this.ECOID;
ecoItems.ID=Int32.Parse(IDLabel.Text);
ecoItems.DocumentNumber=txtDocumentNumber.Text;
ecoItems.title=txttitle.Text;
ecoItems.RevisionFrom=txtRevisionFrom.Text;
ecoItems.To=txtTo.Text;
ecoItemsRepository.Edit(ecoItems);
}
BindListView();
}
}
我甚至在尝试
项目更新
事件:

protectedvoid lvECOItems\u项目更新(对象发送方,ListViewUpdateEventArgs e)
{
ECOItemsRepository ECOItemsRepository=新ECOItemsRepository();
ECOItems ECOItems=新的ECOItems();
Label IDLabel=(Label)lvECOItems.EditItem.FindControl(“IDLabel”);
TextBox txtDocumentNumber=(TextBox)lvECOItems.EditItem.FindControl(“txtDocumentNumber”);
TextBox txttitle=(TextBox)lvECOItems.EditItem.FindControl(“txttitle”);
TextBox txtRevisionFrom=(TextBox)lvECOItems.EditItem.FindControl(“txtRevisionFrom”);
TextBox txtTo=(TextBox)lvECOItems.EditItem.FindControl(“txtTo”);
ecoItems.ECOID=this.ECOID;
ecoItems.ID=Int32.Parse(IDLabel.Text);
ecoItems.DocumentNumber=txtDocumentNumber.Text;
ecoItems.title=txttitle.Text;
ecoItems.RevisionFrom=txtRevisionFrom.Text;
ecoItems.To=txtTo.Text;
ecoItemsRepository.Edit(ecoItems);
this.lvECOItems.EditIndex=-1;
BindListView();
最后,我的绑定方法:

受保护的void BindListView()
{
如果(!String.IsNullOrEmpty(this.ecoID))
{
ECOItemsRepository ECOItemsRepository=新ECOItemsRepository();
this.lvECOItems.DataSource=ecoItemsRepository.GetECOItems(ecoID);
this.lvECOItems.DataBind();
this.lvECOItems.Enabled=true;
}
其他的
{
this.lvECOItems.Enabled=false;
}
}
当我单击编辑链接时,ListView会像它应该的那样进入编辑模式

当我在
EditItemTemplate
中单击更新按钮时,它不会触发
ItemCommand
事件。删除和取消这两个操作都有效

itemUpdate
事件根本不会触发


注意:此ListView位于sharepoint Web部件内的用户控件中,因此用户控件是动态创建的。我怀疑它与在回发上绑定网格有关。但如果我不这样做,则ListView不会填充,除非在页面的初始加载上。

我决定采用不同的方法,因为我无法让更新生效。相反,我只需使用Select命令和SelectedIndexChanging事件来填充当前用于插入的控件集。ItemTemplate中的链接按钮标记为“编辑”,但使用CommandName=“选择”。这不是一个完美的解决方案,但它可以工作