2012-07-21 79 views
0

我想刪除多個網格視圖記錄。我嘗試如下所示。無法刪除多個網格視圖記錄

 public void btnDelete_Click(object sender, EventArgs e) 
     { 
      StringCollection orderNumberCollection = new StringCollection(); 
      if (gridOrders.Rows.Count > 0) 
      { 
       foreach (GridViewRow gvrow in gridOrders.Rows) 
        { 
         if (gvrow.RowType == DataControlRowType.DataRow) { 
          CheckBox cbx = (CheckBox)gvrow.Cells[0].FindControl("chkdelete"); 
          Label lblOrderNumner = (Label)gvrow.FindControl("labelOrderNumber"); 
          Label lastName = (Label)gvrow.FindControl("LabelLastName"); 
          if (cbx.Checked && lblOrderNumner != null) 
          { 
           orderNumberCollection.Add(lblOrderNumner.Text); 
          } 
         } 
        } 
      } 
     if (orderNumberCollection.Count > 0) 
     { 
      DeleteMultipleOrders(orderNumberCollection); 
     } 
} 

但總是複選框控件顯示「Checked = false」。爲什麼複選框控件總是顯示錯誤,即使我檢查了一些複選框?

這裏是我的網格視圖代碼:

<asp:TemplateField> 
    <HeaderTemplate> 
    <table><tr><td ><asp:CheckBox ID="chkAll" runat="server" /></td><td><asp:Button ID="btnDelete" runat="server" Text="Delete" OnClick="btnDelete_Click" /></td></tr></table> 
    </HeaderTemplate> 
     <ItemTemplate> 
      <asp:CheckBox ID="chkdelete" runat="server" Text='<%# Bind("OrderNumber") %>' Font-Bold="false" /> 
     </ItemTemplate> 

    </asp:TemplateField> 
+0

請顯示GridView代碼 – HatSoft 2012-07-21 22:03:48

+0

即使在回發中,您是否重新加載GridView?這將導致複選框取消選擇。 – 2012-07-21 23:10:08

+0

謝謝蒂姆。你是對的。 – Ranjith 2012-07-22 03:29:51

回答

0

我與蒂姆是這一點,這聽起來像你加載從Page_Load內你的GridView,這是罰款。但在你的情況下,你需要確保你的GridView加載代碼看起來是這樣的:

if(!Page.IsPostBack) 
{ 
    //gridview loading code 
} 

這樣可以防止你的GridView被重新加載(和丟失其複選框被選中),當您點擊刪除按鈕