簡體   English   中英

刪除Gridview ASP.NET上的選定動態復選框

[英]Delete Selected Dynamic Checkboxes on Gridview ASP.NET

我有一個gridview包含來自數據庫的數據。 我已經為每行動態創建了復選框。 我想要的是,當我單擊“刪除所選內容”按鈕時,選中的復選框將被刪除。 但是當我單擊按鈕時,行不會被刪除。 這是按鈕的代碼:

protected void btnDeleteSelectedServiceProvidersLocations_Click(object sender, EventArgs e)
    {
        int x = 102;
        string delete;
        foreach (GridViewRow grow in gvServiceProviders.Rows)
        {
            delete = Request.Form["gvServiceProviders$ct" + x + "$cbSelect"];
            if (delete != null || delete == "on" || delete == "y")
            {
                bll.ServiceProviderLocationID = grow.Cells[1].Text;
                bll.IsDeleted = "y";
                bll.ServiceProviderLocationDelete();
            }
            x++;
        }
        gvServiceProviders.DataSource = bll.GetServiceProviderLocations();
        gvServiceProviders.DataBind();
    }

如果有幫助,gridview在更新面板中。 我正在使用三層方法。

ASPX代碼:

<div ID="gridView">
     <asp:GridView ID="gvServiceProviders" runat="server">
            <Columns>
                  <asp:templatefield HeaderText="Select">
                       <itemtemplate>
                                <asp:CheckBox ID="cbSelect" runat="server"/>
                       </itemtemplate>
                  </asp:templatefield>
            </Columns>
     </asp:GridView>
 </div>

您希望在選中復選框后刪除數據,然后可以執行以下操作,

   foreach (GridViewRow grow in gvServiceProviders.Rows)
    {
       //Make sure it is datarow
       if(grow.RowType = RowType.DataControlRowType.DataRow)
       {
          //Finiding checkbox control in gridview for particular row
          CheckBox chkdelete = (CheckBox)grow.FindControl("cbSelect");

          //Make sure if checkbox is selected for the processing row
          if(chkdelete.Checked)
          {
            //Getting your datakey value
            bll.ServiceProviderLocationID = Convert.ToInt32(gvServiceProviders.DataKeys[grow.RowIndex].Value);
            bll.IsDeleted = "y";
            bll.ServiceProviderLocationDelete(); 
          }             
       }
    }
    gvServiceProviders.DataSource = bll.GetServiceProviderLocations();
    gvServiceProviders.DataBind();

由於這是使用gridview的datakey ,因此需要使用datakey設置gridview的DataKey屬性。

Try this code:
protected void btnDelete_Click(object sender, EventArgs e)
{
foreach (GridViewRow gvrow in gvDetails.Rows)
{
//Finiding checkbox control in gridview for particular row
CheckBox chkdelete = (CheckBox)gvrow.FindControl("chkSelect");
//Condition to check checkbox selected or not
if (chkdelete.Checked)
{
//Getting UserId of particular row using datakey value
int usrid = Convert.ToInt32(gvDetails.DataKeys[gvrow.RowIndex].Value);
using (SqlConnection con = new SqlConnection("Data Source=Test;Integrated Security=true;Initial Catalog=MySampleDB"))
{
con.Open();
SqlCommand cmd = new SqlCommand("delete from UserDetails where UserId=" + usrid, con);
cmd.ExecuteNonQuery();
con.Close();
}
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM