Asp.net 具有删除行功能的Gridview用户控件不';删除后无法更新我的gridview
我有一个具有CRUD功能的gridview用户控件。我有一个OnRowDelete事件和一个RowCommand事件,用于检查是否单击了我的“删除”按钮 在行删除:Asp.net 具有删除行功能的Gridview用户控件不';删除后无法更新我的gridview,asp.net,gridview,crud,Asp.net,Gridview,Crud,我有一个具有CRUD功能的gridview用户控件。我有一个OnRowDelete事件和一个RowCommand事件,用于检查是否单击了我的“删除”按钮 在行删除: protected void grd_RowDeleting(object sender, GridViewDeleteEventArgs e) { grd.EditIndex = -1; pnlSelected.Visible = false; btnSave.Visible
protected void grd_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
grd.EditIndex = -1;
pnlSelected.Visible = false;
btnSave.Visible = false;
btnInsert.Visible = false;
grd.DataBind();
}
行命令:
protected void grd_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
LinkButton lnkBtn = (LinkButton)e.CommandSource; // the button
GridViewRow myRow = (GridViewRow)lnkBtn.Parent.Parent; // the row
GridView myGrid = (GridView)sender; // the gridview
string item = (string)myGrid.DataKeys[myRow.RowIndex].Value.ToString();
DataController.DeleteByPrimKey(item);
}
}
在我的webform中,我填充了usercontrol的数据源。现在的问题是我想删除一条记录
ucShowHouseList.DataSource = myDataSource;
如果在gridview中删除记录,gridview不会显示更改。如果我刷新页面,记录将被删除
有什么问题吗
编辑:
我认为我的问题是usercontrol中的数据源在删除后不会得到更新。因此,在Web表单的页面加载中,我填充了usercontrol的数据源:
ucShowHouseList.DataSource=myDataSource代码>
在我的usercontrol中删除行时,我现在执行以下操作:
grd.DataSource = DataSource;
grd.DataBind();
DataSource是我的usercontrol中的一个IENumerable属性,我在Web表单中加载页面时填充它
public IEnumerable DataSource;
这将返回项目集合,并且在我删除行时不会更新,因为我的页面未重新加载,因此集合无法更新
如何解决这个问题?您需要在grd_rowdeleding
notgrd.DataBind()之后调用Gridview绑定函数代码>
Gridview.DataBind
需要绑定数据源 旁注:使用lnkBtn.NamingContainer
来获取GridViewRow
而不是lnkBtn.Parent.Parent
。根据您的问题,在您更改数据源后,是否数据绑定网格视图
?好的,我通过重新填充数据源然后重新绑定来解决问题。我的问题现在解决了