- Joined
- May 17, 2013
- Messages
- 7
- Reaction score
- 0
hi, I am having a problem with deleting gridview rows. I am populating my gridview by selecting value in a dropdownlist then by clicking the add button, value will be added in my gridview, here is my code:
in my code behind:
Now, I am trying to remove checked rows on my gridview with this code:
With the btnRemove codes above, If I clicked it, it'll remove all values in my gridview even the unchecked rows, what I want is that just the checked rows not all. And are there any other simple way of removing rows in a gridview than using checkbox? I am using c# with asp.net. Thanks in advance and God Bless.
Code:
<asp:GridView ID="GridView1" runat="server"
CssClass="mGrid" EmptyDataText = "There are no records to display">
<Columns>
<asp:TemplateField ItemStyle-Width="10">
<HeaderTemplate>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
in my code behind:
Code:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
DataColumn dc = new DataColumn("Id");
DataColumn dc1 = new DataColumn("Name");
//DataColumn dc2 = new DataColumn("Id");
dt.Columns.Add(dc);
dt.Columns.Add(dc1);
// dt.Columns.Add(dc2);
ds.Tables.Add(dt);
Session["data"] = ds;
GridView1.DataBind();
}
}
protected void btnSave_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("Data Source=GATE-PC\\SQLEXPRESS;Initial Catalog=dbProfile;Integrated Security=True");
con.Open();
foreach (GridViewRow row in GridView1.Rows)
{
SqlCommand cmdd = new SqlCommand("Insert into Profile (Id, profile_Id)VALUES(@id, @pid)", con);
cmdd.CommandType = System.Data.CommandType.Text;
cmdd.Parameters.AddWithValue("@id", row.Cells[1].Text);
cmdd.Parameters.AddWithValue("@pid", txtbid.Text);
cmdd.ExecuteNonQuery();
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
DataSet ds = (DataSet)Session["data"];
DataRow dr = ds.Tables[0].NewRow();
dr[0] = DropDownList1.Text.Trim();
dr[1] = DropDownList1.SelectedItem;
//dr[2] = txtId.Text.Trim();
ds.Tables[0].Rows.Add(dr);
GridView1.DataSource = ds;
GridView1.DataBind();
}
Now, I am trying to remove checked rows on my gridview with this code:
Code:
protected void btnRemove_Click(object sender, EventArgs e)
{
ArrayList del = new ArrayList();
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
CheckBox chkDelete = (CheckBox)row.Cells[0].FindControl("CheckBox1");
if (chkDelete != null)
{
if (chkDelete.Checked)
{
string id = row.Cells[1].Text;
del.Add(productId);
}
}
}
}
GridView1.DataBind();
}
With the btnRemove codes above, If I clicked it, it'll remove all values in my gridview even the unchecked rows, what I want is that just the checked rows not all. And are there any other simple way of removing rows in a gridview than using checkbox? I am using c# with asp.net. Thanks in advance and God Bless.