如何使用 JavaScript 按钮删除 gridview 上的一行并保留在同一页面上

2024-01-23

我正在通过 gridview 显示一组记录,并且edit and delete旁边的按钮。我在记录删除部分遇到问题。我想要的行为如下:用户单击按钮,调用 JavaScript 验证函数,单击按钮后记录将被删除,但用户与其余记录仍保留在同一页面上。我怎样才能在保持同一页面的同时做到这一点?

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent">
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <div>

        &nbsp;&nbsp;&nbsp;
        <br />
&nbsp;

        <asp:HyperLink NavigateUrl="~/Entry.aspx" runat="server" text="Add New Record" />
    </div>

    <div>
        <asp:GridView runat="server" ID="grdView" AutoGenerateColumns="false" Height="100%"
            Width="100%" onselectedindexchanged="grdView_SelectedIndexChanged" >
            <Columns>

                <asp:BoundField DataField="Prod_Id" HeaderText="product id " HeaderStyle-BackColor="Azure"  />
                 <asp:BoundField DataField="Prod_Name" HeaderText="Product Name" HeaderStyle-BackColor="Azure" />
                <asp:BoundField DataField="Unit_Price" HeaderText="Unit Price " HeaderStyle-BackColor="Azure" />
                <asp:BoundField DataField="In_Hand" HeaderText="In Hand" HeaderStyle-BackColor="Azure" />
                <asp:BoundField DataField="Fixed" HeaderText="Fixed" HeaderStyle-BackColor="Azure" />
                <asp:BoundField DataField="Status" HeaderText="Status" HeaderStyle-BackColor="Azure" />
                 <asp:HyperLinkField DataNavigateUrlFields="Prod_Id" DataNavigateUrlFormatString="edit.aspx?Prod_Id={0}" Text="Edit" />
                <asp:ButtonField   ButtonType="Link"  Text="Delete" />        

            </Columns>
        </asp:GridView>
    </div>
</asp:Content>

代码隐藏部分

public partial class _Default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            binddata();
        }

        SqlConnection con;
        SqlDataAdapter da;
        DataSet ds;

        void binddata()
        {
            con = new SqlConnection("Data Source=.\\sqlexpress; initial catalog=PracticeDb; user id=sa; pwd=manager;");
            con.Open();
            da = new SqlDataAdapter("Select * from Products", con);
            DataSet ds = new DataSet();
            da.Fill(ds);
            con.Close();
            grdView.DataSource = ds;
            grdView.DataBind();
        }

        protected void grdView_SelectedIndexChanged(object sender, EventArgs e)
        {


            var P_id = ds.Tables[0].Rows[0]["Prod_Id"].ToString();

            SqlConnection con = new SqlConnection();
            con.ConnectionString = ("Data Source=.\\sqlexpress; initial catalog=PracticeDb; user id=sa; pwd=manager;");
            con.Open();
            string qry = "DELETE FROM PRODUCTS WHERE Prod_Id='" +P_id+ "'";
            SqlCommand cmd = new SqlCommand(qry, con);
            cmd.ExecuteNonQuery();
            con.Close();


        }



    }
}

Thanks


您可以使用行数据绑定事件来完成此任务。

  <asp:LinkButton ID="lnkBtnDel" runat="server" CommandName="DeleteRow" OnClientClick="return confirm('Are you sure you want to Delete this Record?');""CommandArgument='<%#Eval("Prod_Id") %>'>Delete</asp:LinkButton>

在 rowdatabound 事件中你可以有

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
 if (e.CommandName == "DeleteRow")
    {
        //incase you need the row index 
        int rowIndex = ((GridViewRow)((LinkButton)e.CommandSource).NamingContainer).RowIndex;
        int Prod_Id= Convert.ToInt32(e.CommandArgument);
        //followed by your code 
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JavaScript 按钮删除 gridview 上的一行并保留在同一页面上 的相关文章

随机推荐