Click here to Skip to main content
15,886,422 members
Please Sign up or sign in to vote.
4.50/5 (2 votes)
See more:
Good evening,

I have issue with deleting record from gridview which is bind with Datatable,
I have one link button in grid view,i need when i click on remove button then corresponding record deleted.

my aspx file is given below.

XML
<asp:GridView ID="GriDisplay" runat="server"
                   onrowdeleting="GriDisplay_RowDeleting"
                   Height="162px" onselectedindexchanged="GriDisplay_SelectedIndexChanged" >
          <Columns>
          <asp:TemplateField>
          <ItemTemplate>
           <asp:LinkButton ID="LinkAssetDelete" runat="server"   OnClick="LinkAssetDelete_OnClick" CausesValidation="false" >Remove</asp:LinkButton>
          </ItemTemplate>
          </asp:TemplateField>
          </Columns>
        </asp:GridView>

and my aspx.cs file is given below.

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            
            DataTable dtToGrid = new DataTable();
            dtToGrid.Columns.Add("Asset", typeof(System.Int16));
            dtToGrid.Columns.Add("Employee", typeof(string));
            dtToGrid.Columns.Add("Location", typeof(string));
            dtToGrid.Columns.Add("Supplier", typeof(string));
            dtToGrid.Columns.Add("IssuedDate", typeof(string));
            Session["dtToGrid"] = dtToGrid;
        }
    }
 protected void btnAdd_Click(object sender, EventArgs e)
    {

        DataTable dtToGrid = (DataTable)Session["dtToGrid"];
        DataRow drToGrid = dtToGrid.NewRow();
        drToGrid["Asset"] = ddlAssetID.SelectedValue;
        drToGrid["Employee"] = ddlEmployeeID.SelectedItem;
        drToGrid["Location"] = ddlLocationID.SelectedItem;
        drToGrid["Supplier"] = ddlSupplierID.SelectedItem;
        drToGrid["IssuedDate"] = txtIssuedReceivedDate.Text.Trim();
        dtToGrid.Rows.Add(drToGrid);
        GriDisplay.DataSource = dtToGrid;
        GriDisplay.DataBind();
}
  protected void LinkAssetDelete_OnClick(object sender, EventArgs args)
    {
        LinkButton link = (LinkButton)sender;
        GridViewRow gv = (GridViewRow)(link.Parent.Parent);
        DataSet ds = new DataSet();
        DataTable dtToGrid = (DataTable)Session["dtToGrid"];
        DataTable dt = ds.Tables["tToGrid"];
        DataRow dr = dt.Rows[0];
        dr.Delete();
        ds.AcceptChanges();

       
    }

but its not working.

Please anyone give me ideas how to solve it.

Thanks in advance.
Posted
Updated 21-Dec-11 5:43am
v3

You need to handle Gridview Item command event instead of button click event. So follow the below steps:

1: Provide command name of link button property like "Delete"
2: Add Gridview Item Command event. In this event check if command name is "Delete" then perform operation according to your requirement.

Thanks
 
Share this answer
 
Take a look at this link How to Edit,Update,Delete in Gridview
[^]


I hope this will help you well.
 
Share this answer
 
put datakeysnames="some col" in gridview and handle gridview deleting event

int no=convert.toint16(gridview1.datakeys[e.rowindex].value.tostring());

now delete statement as your wish with where condition
 
Share this answer
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
using System.IO;
using System.Text;
using System.Net.Sockets;
using System.Data;
using System.Web.Security;

namespace SS_Inter.Users
{
    public partial class BuyPackage : System.Web.UI.Page
    {

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                CreateShoppingCart();

            }
        }

        protected void btnSearch_Click(object sender, EventArgs e)
        {
            try
            {
                string[] webserver = new string[] { "whois.internic.net", "whois.ripe.net", "whois.cira.ca", "whois.nic.uk" ,"whois.domain-registry.nl"};

               

                TcpClient objTCPC = new TcpClient(webserver[0], 43);
                string strDomain = txtDomainName.Text + "\r\n";


                byte[] arrDomain = Encoding.ASCII.GetBytes(strDomain);
                Stream objStream = objTCPC.GetStream();
                objStream.Write(arrDomain, 0, strDomain.Length);
                StreamReader objSR = new StreamReader(objTCPC.GetStream(),Encoding.ASCII);

                lblResponse.Text = "<b>" + strDomain +
                "</b><br><br>" + Regex.Replace(objSR.ReadToEnd(), "\n", "<br>");


                string str1 = lblResponse.Text;


                if (str1.IndexOf("match") == -1)
                {
                    Label1.Text = "Not Available";
                }
                else
                {
                    Label1.Text = "Available";
                }

                objTCPC.Close();
            }
            catch (Exception ex)
            {
                lblResponse.Text = ex.ToString();
            } 
        }

        protected void btnAddtoCart_Click(object sender, EventArgs e)
        {
                DataTable dt = (DataTable)Session["dtCart"];
                string CartID = string.Empty;
                if (Session["CartID"] != null)
                {
                    CartID = Session["CartID"].ToString();
                }
                else
                {
                    CartID = Guid.NewGuid().ToString();
                    Session["CartID"] = CartID;
                }


                int packageId = Int32.Parse(ddlPackage.SelectedValue);
             
                DataRow row = dt.NewRow();
                row["CartId"] = CartID;
                row["PackageID"] = packageId;
                row["PackagePrice"] = GetPackagePrice(packageId);
                row["PackageName"] = ddlPackage.SelectedItem.Text;
                row["DomainName"] = txtDomainName.Text;
                row["CreatedID"] = GetMemberID();
                dt.Rows.Add(row);

                gvCart.DataSource = dt;
                gvCart.DataBind();

                Session["dtCart"] = dt;

        }

        private object GetMemberID()
        {
            string memberid="";
           MembershipUser user = Membership.GetUser();
           if (user != null)
           {
              memberid = user.ProviderUserKey.ToString();
           }
           return memberid;
        }

        private decimal GetPackagePrice(int packageId)
        {
            decimal price=0;
            if (packageId == 1)
            {
                price = 1000;
            }
            if (packageId == 2)
            {
                price = 2000;
            }
            if (packageId == 3)
            {
                price = 3000;
            }
            return price;
        }

        private void CreateShoppingCart()
        {
            DataTable dtShoppingCart = new DataTable();
            DataColumn ID = new DataColumn("ID");
            ID.AutoIncrement = true;
            ID.AutoIncrementSeed = 1;
            ID.ReadOnly = true;
            ID.Unique = true;
            DataColumn[] keys = new DataColumn[1];
            keys[0] = ID;
           

            DataColumn CartID = new DataColumn("CartId");
            DataColumn PackageID = new DataColumn("PackageID");
            DataColumn PackageName = new DataColumn("PackageName");
            DataColumn PackagePrice = new DataColumn("PackagePrice");
            DataColumn DomainName = new DataColumn("DomainName");
            DataColumn CreatedID = new DataColumn("CreatedID");

            dtShoppingCart.Columns.Add(ID);
            dtShoppingCart.Columns.Add(CartID);
            dtShoppingCart.Columns.Add(PackageID);
            dtShoppingCart.Columns.Add(PackageName);
            dtShoppingCart.Columns.Add(PackagePrice);
            dtShoppingCart.Columns.Add(DomainName);
            dtShoppingCart.Columns.Add(CreatedID);
             dtShoppingCart.PrimaryKey = keys;

            Session["dtCart"] = dtShoppingCart;
        }

        protected void gvCart_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "delete")
            {
                int id = Int32.Parse(e.CommandArgument.ToString());
                DataTable dt = (DataTable)Session["dtCart"];
                dt.Rows.Find(id).Delete();
                dt.AcceptChanges();
                Session["dtCart"] = dt;
                               
            }
        }

        protected void gvCart_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            gvCart.DataSource = Session["dtCart"] as DataTable;
            gvCart.DataBind();
        }

     

    }
}
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900