Getting Gidview Hidden Field Value on Button Click in ASP.NET

I have a gridview dtAppend. I want the selected row entry to be removed from the user table when the delete button is clicked.

I first used button fieldin gridview like:

<asp:ButtonField Text="Delete" CommandName="DeleteRow" ControlStyle-CssClass="btn btn-danger btn-small" ControlStyle-ForeColor="White" />
<asp:TemplateField visible="false" ItemStyle-Width="0px">
    <ItemTemplate>
        <asp:HiddenField ID="HiddenField" Visible="false" runat="server" Value='<%# Eval("userId") %>' />
    </ItemTemplate>
</asp:TemplateField>

My client says to show a JavaScript alert and by clicking yes, the entry should be deleted. I cannot write onClientClickbuttons for a field, so I have to use a regular Asp button.

on rowCommandgridview I get the value of the hidden field in this code

if (e.CommandName == "DeleteRow")
{
    GridViewRow row = dtAppend.Rows[Convert.ToInt32(e.CommandArgument)];
    hidden1 = (HiddenField)row.Cells[6].FindControl("HiddenField");
    string text = Convert.ToString((HiddenField)row.Cells[6].FindControl("HiddenField"));
    Session["dtIdDel"] = hidden1.Value;
}

I get this value in the session, but I need Button_ClickEvent to work on the code, as shown below

 protected void deleteButton_Click(object sender, EventArgs e)
    {
        GridViewRow row = dtAppend.Rows[Convert.ToInt32(e.CommandArgument)];
        hidden1 = (HiddenField)row.Cells[6].FindControl("HiddenField");
        string text = Convert.ToString((HiddenField)row.Cells[6].FindControl("HiddenField"));
        Session["dtIdDel"] = hidden1.Value;}

'e.CommandArgument' , e.CommandArgument

?

+3
4

, , .

<asp:LinkButton CommandArgument='<%# Eval("userId") %>' OnClientClick="if (!confirm('Are you sure you want delete?')) return false;" CommandName="DeleteRow" ID="eliminar" runat="server" Text="delete"/>

if (e.CommandName == "DeleteRow")
{
    int userId = Int32.Parse(e.CommandArgument.ToString());
}
+1

Visible="false". , , , Visible="false" . , , Visible="true"

:

RowDataBound Grid, CommandArgument , . .

: -

Button btnMail = (Button)e.Row.FindControl("lnkMail");
btnMail.CommandArgument = e.Row.RowIndex.ToString();
+2

visible="false"

<asp:HiddenField ID="HiddenField" runat="server" Value='<%# Eval("userId") %>' />
+2

You can just send the ID as command argument

or

Try using the following code:

var ID = int.Parse(((HiddenField)item.FindControl("HiddenField1")).Value);
sql = "delete from tablename where id=" + ID;
+1
source

All Articles