Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# GridView在行删除事件后隐藏_C#_Asp.net - Fatal编程技术网

C# GridView在行删除事件后隐藏

C# GridView在行删除事件后隐藏,c#,asp.net,C#,Asp.net,我正在使用GridView行命令事件从GridView中删除行,我添加了GridView的行删除事件, 但删除后,GridView将变得隐藏。 下面是我的代码 protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack){ LoadData()//Here I am databinding the Grid } } private void LoadData() { va

我正在使用GridView行命令事件从GridView中删除行,我添加了GridView的行删除事件, 但删除后,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();
} 

GridView不显示任何记录,因为在
dg_rowdeleding
中调用数据绑定之前,您没有为其分配数据源

在重新调用
DataBind
之前,需要重新分配
DataSource
,因为回发时不会再次设置它

因此,
dg_RowCommand
方法的删除部分的典型方法是:

  • 标识要删除的行。从数据库中删除该行
  • 从数据库重新加载数据
  • 将数据分配给
    数据源
    属性
  • 通过调用
    DataBind()
    绑定GridView

  • 对于步骤2-4,您可以从
    dg_row命令
    调用
    LoadData
    方法。如果您自己不执行删除操作,但想在删除行时执行某些操作,则只需执行
    dg_rowdeleding

    我猜您在删除行后缺少数据源

    试试这个

    protected void dg_RowCommand(Object sender, GridViewCommandEventArgs e)
    {
        if(e.CommandName =="del")
        {
            //Delete Records
           LoadData();
        }
    
    }
    
    public void dg_RowDeleting(Object sender, GridViewDeleteEventArgs e)
    {
        LoadData();
    } 
    

    你的意思是数据都消失了吗?数据源在哪里???@PandaZhang是的,你可以这么说,但是当我刷新页面时,GridView出现了again@VigneshKumar我刚刚把方法贴在了问题所在的地方arising@SyedSalmanRazaZaidi发布完整代码。此错误是由数据源引起的