2012-10-26 48 views
3

我已經在gridview中使用了模板CheckBox中的多行刪除,當我通過選擇CheckBox並執行刪除操作來選擇多行時,它似乎被選中CheckBox沒有返回對下面的代碼是真的。模板複選框選中的屬性在GridView中獲取刪除操作

保護無效Button6_Click(對象發件人,EventArgs的){

 foreach (GridViewRow row in GridView1.Rows) 
     { 
      LinkButton ch = new LinkButton(); 
      ch = (LinkButton)row.FindControl("l1"); 
      id = Convert.ToInt16(ch.CommandArgument); 
      CheckBox chs = new CheckBox(); 
      chs = ((CheckBox)row.FindControl("c1")); 

      if (chs.Checked == true) 
      { 
       DeleteSelected(id); 
      } 
     } 
    } 

private void DeleteSelected(short id) 
{ 
    var ch = from a in empd.Employees where (a.ID == id) select a; 
    empd.Employees.DeleteAllOnSubmit(ch); 
    empd.SubmitChanges(); 
    display_emp(); 
} 

可能有人請幫助我,爲什麼CheckBox不調用函數返回真值。

現在我已經修復了連接的一切,請刷新數據庫。請在下面的鏈接中獲取Web應用程序。

http://www.ziddu.com/download/20716096/WebApplication.zip.html 請幫我解釋爲什麼選中的複選框在代碼中沒有返回true。

+0

確保你不檢查我的選擇.. –

+0

我沒有找到任何上傳代碼之前重置gridview的,所以這裏是一個鏈接下面是示例web應用程序。 http://www.ziddu.com/download/20715484/WebApplication.zip.html –

+0

我已經在上面的鏈接中附加了示例web應用程序,任何人都可以幫助我解決這個問題。 –

回答

1

詳細信息:如果(IsPostback)在開始時添加,否則它會重置您的網格控件。下面的示例

解決方案:

if (!IsPostBack) 
{ 
    empd = new Employee_DetailsDataContext(); 
    empd.Connection.ConnectionString = ConfigurationManager.ConnectionStrings["DemosConnectionString1"].ConnectionString; 

    display_emp(); 
} 
+0

非常感謝你爲我工作。 但現在我面臨更多的問題,爲什麼檢索一個querry(var ch =從一個empd.Employees其中(a.ID == Convert.ToInt16(id))選擇a)給出一個異常對象引用未設置爲一個對象的實例。 你能解決這個問題嗎? –

+0

我現在已經解決了這個問題。我剛剛添加了兩行代碼,如下所示: empd = new Employee_DetailsDataContext(); empd.Connection.ConnectionString = ConfigurationManager.ConnectionStrings [「DemosConnectionString1」]。ConnectionString; 但我不明白爲什麼我需要在IsPostback事件中創建時重新創建datacontext的對象。有什麼辦法可以簡單地解決這個問題。 –

相關問題