我正在使用GridView Row命令Event从Gridview中删除行,我添加了gridview的RowDeleting事件, 但是在删除GridView之后就越来越隐藏了。 以下是我的代码
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack){
LoadData()//Here I am databinding the Grid
}
}
private void LoadData()
{
var data=MyClass.GetRecords();//it returns DataTable
dg.DataSource=data;
dg.DataBind();
}
protected void dg_RowCommand(Object sender, GridViewCommandEventArgs e)
{
if(e.CommandName =="del")
{
//Delete Records
dg.DataBind();
}
}
public void dg_RowDeleting(Object sender, GridViewDeleteEventArgs e)
{
dg.DataBind();
}
答案 0 :(得分:1)
GridView不会显示任何记录,因为在dg_RowDeleting
中调用DataBind之前,您没有为其分配DataSource。
在重新调用DataSource
之前,您需要重新分配DataBind
,因为它未在PostBack上再次设置。
因此,dg_RowCommand
方法的删除部分的典型方法是:
DataSource
属性。DataBind()
绑定GridView。对于步骤2-4,您可以从LoadData
调用dg_RowCommand
方法。如果您没有自己实现删除,但是想要在删除行时执行某些操作,则只需要实现dg_RowDeleting
。
答案 1 :(得分:1)
我的猜测是你在删除行后缺少DataSource。
试试这个
protected void dg_RowCommand(Object sender, GridViewCommandEventArgs e)
{
if(e.CommandName =="del")
{
//Delete Records
LoadData();
}
}
public void dg_RowDeleting(Object sender, GridViewDeleteEventArgs e)
{
LoadData();
}