2012-08-23 40 views
0

即時消息以編程方式從GridView刪除。從.net gridview中刪除

我已經實現了gridview的OnRowDeleting="Delete_Record"事件處理程序,當用戶單擊GridView上的刪除鏈接時會調用這個處理程序,但由於行似乎沒有被選中,所以刪除的代碼不起作用。

要進一步測試,我可以單擊選擇,選擇行(註釋掉select後面的代碼),然後如果我單擊刪除,代碼運行良好。

有沒有辦法讓行被選作Delete_Record的第一步?

GridViewRow row = gvResults.SelectedRow; 
string id = row.Cells[1].Text; 

ASB_DataDataContext db = new ASB_DataDataContext(); 
var delCase = from dc in db.Inputts 
       where dc.counter == Convert.ToInt32(id) 
       select dc; 

foreach (var nCase in delCase) 
{ 
    db.Inputts.DeleteOnSubmit(nCase); 
    db.SubmitChanges(); 
} 

回答

2

由於您使用您應該具有所需指數爲GridViewDeleteEventArgs e的一部分應該是這樣說e.RowIndex

你就可以訪問你所需要的參數爲grid.Rows[e.RowIndex].Cells[1].Text

+0

Ahhh,謝謝你 - 已經嘗試了一些東西,但有EventArgs而不是GridViewDeleteEventArgs - doh! – DarkW1nter

0

您可以將事件通過以下代碼實現

public void GridView1_Delete_Record (Object sender, GridViewDeleteEventArgs e) 
{ 
    string id = gridView1.Rows[e.RowIndex].Cells[2].Text; 

    ASB_DataDataContext db = new ASB_DataDataContext(); 
    var delCase = from dc in db.Inputts 
       where dc.counter == Convert.ToInt32(id) 
       select dc; 

    foreach (var nCase in delCase) 
    { 
     db.Inputts.DeleteOnSubmit(nCase); 
     db.SubmitChanges(); 
    } Message.Text = ""; 
} 
0

db.Inputts設置爲DataSource你的數據網格。只需添加下面兩行代碼後:

datagridView1.DataSource = null; 
datagridView1.DataSource = db.Inputts; 

設置數據源爲空是從數據網格清除以前的數據;