How to add a confirmation confirmation request for a command field in the detail view?

I want to ask the user for confirmation when he tries to delete the record in the detail view? I have a command in which showDeletebutton is set to true.

I found how to make confirmation for gridview, but how can I change to fit the detailed view?

the code:

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
    // loop all data rows
    foreach (DataControlFieldCell cell in e.Row.Cells)
    {
       // check all cells in one row
       foreach (Control control in cell.Controls)
       {
            // Must use LinkButton here instead of ImageButton
            // if you are having Links (not images) as the command button.
            ImageButton button = control as ImageButton;
            if (button != null && button.CommandName == "Delete")
                // Add delete confirmation
                button.OnClientClick = "if (!confirm('Are you sure " + 
                       "you want to delete this record?')) return;";
        }
    }
}
}

Is anyone

+5
source share
5 answers

I found the answer to my question.

My answer:

 protected void DViewComputer_DataBound1(object sender, EventArgs e)
{
    int noRow = DViewComputer.Rows.Count - 1;//get the no of record

    if (noRow >0)
    {
        Button button = (Button)(DViewComputer.Rows[noRow].Cells[0].Controls[2]);

        // Add delete confirmation
        ((System.Web.UI.WebControls.Button)(button)).OnClientClick = "if (!confirm('Are you sure " +
                               "you want to delete this record?')) return;";

    }
}

In any case, thanks for helping the guys.

+3
source
     <asp:DetailsView ID="DetailsView1" runat="server" Height="50px" Width="125px" 
        .....
            <asp:BoundField DataField="price" HeaderText="price" SortExpression="price" />
            <asp:BoundField DataField="Quantity" HeaderText="Quantity" 
                SortExpression="Quantity" />
            <asp:TemplateField ShowHeader="False">
                 <ItemTemplate>
                    <asp:LinkButton  ID="LinkButton2" runat="server" CausesValidation="False" 
                        CommandName="New" Text="New"></asp:LinkButton>

                    <asp:LinkButton ID="lnkDelete" runat="server" CausesValidation="False" 
                        CommandName="Delete" Text="Delete" OnClientClick="return confirm('Are you sure you want to delete this record');"></asp:LinkButton>

                </ItemTemplate>
            </asp:TemplateField>
        </Fields>
    </asp:DetailsView

This can easily be done using the markup code. I just added the js code to the onClientClick property of the delete button:

OnClientClick="return confirm('Are you sure you want to delete this record');"

Or if you want to do this in the code behind:

 protected void DetailsView1_DataBound(object sender, EventArgs e)
  {
    LinkButton bttn = (LinkButton)DetailsView1.FindControl("lnkDelete");
    bttn.OnClientClick = "return confirm('Are you sure you want to delete this record!');";
  }
+8
source
   foreach (Control control in cell.Controls)
   {
        // Must use LinkButton here instead of ImageButton
        // if you are having Links (not images) as the command button.
        ImageButton button = control as ImageButton;
        if (button != null && button.CommandName == "Delete")
            // Add delete confirmation
            button.Attributes.Add("onclick","your javascript here");
    }
+1
source

This fixes the OP solution. The code was translated from the code found here: http://forums.aspfree.com/net-development-11/confirm-button-when-deleting-detailsview-120113-2.html

protected void dvEvent_DataBound(object sender, EventArgs e)
{

    int commandRowIndex = dvEvent.Rows.Count - 1;
    if (commandRowIndex > 0)
    {
        DetailsViewRow commandRow = dvEvent.Rows[commandRowIndex];
        DataControlFieldCell cell = (DataControlFieldCell)commandRow.Controls[0];

        foreach (Control ctrl in cell.Controls)
        {
            if (ctrl is ImageButton)
            {
                ImageButton ibt = (ImageButton)ctrl;
                if (ibt.CommandName == "Delete")
                {
                    ibt.ToolTip = "Click here to Delete";
                    ibt.CommandName = "Delete";
                    ibt.Attributes["onClick"] = "if (!confirm('Are you sure " +
                                "you want to delete this record?')) return;";
                }
            }
        }
    }
}
0
source

All Articles