2014-03-04 155 views
2

我正在使用GridView Row命令從Gridview刪除行的事件,我添加了Gridview的RowDeleting事件, 但刪除後,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(); 
} 
+0

你的意思是數據全沒了? –

+0

哪裏是數據源? –

+0

@PandaZhang是的,你可以這樣說,但是當我刷新頁面時,GridView會再次出現 –

回答

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(); 
} 
1

GridView控件不顯示任何記錄,因爲你不dg_RowDeleting調用的DataBind前一個數據源分配給它。

在重新調用DataBind之前,您需要重新指定DataSource,因爲它未在回發站上重新設置。

因此,對於你dg_RowCommand方法的刪除部分的典型做法是:

  1. 確定要被刪除的行。從數據庫中刪除該行。
  2. 重新加載數據庫中的數據。
  3. 將數據分配給DataSource屬性。
  4. 通過調用DataBind()來綁定GridView。

對於步驟2-4,您可以撥打LoadData方法dg_RowCommand。如果您不是自己實現刪除,而是想在刪除某行時執行某些操作,則只需實施dg_RowDeleting