Solved

Adding "Delete Confirmation" in DetailsView for .NET 2.0

Posted on 2007-03-29
6
1,585 Views
Last Modified: 2008-01-09
Could anyone tell me how to put delete confirmation pop up in detailsview control?  (in VB.NET)

I created 3 button ( Edit, Delete, New) as commandfield. I tried with <asp:templatefield> and it works but I would like implement in <asp:commandfield>.

Thanks in advance.
 
 <asp:CommandField ButtonType="Button" ShowDeleteButton="True" ShowEditButton="True"    ShowInsertButton="True" />
'I would like to implement on above line.

<%--        <asp:TemplateField>
        <ItemTemplate>
        <asp:LinkButton
        Text="Delete" runat="server" Commandname="delete"  OnClientClick="return confirm('Delete?');">
        </asp:LinkButton>
        </ItemTemplate>
        </asp:TemplateField>--%>  
0
Comment
Question by:iflash
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
6 Comments
 
LVL 13

Expert Comment

by:KarinLoos
ID: 18815813
you can add the onclick attribute in the code behind for the page on the RowDataBound event.

example  (bear in mind index for cells depends in which colum you have the command button )
If e.Row.RowType = DataControlRowType.DataRow Then
   Dim lb As LinkButton
   lb = e.Row.Cells(0).Controls(0)
   lb.Attributes.Add("onclick", "return confirm('Delete?');")
End If
or c#
if ( e.Row.RowType == DataControlRowType.DataRow  )
{
    LinkButton lb =(LinkButton) e.Row.Cells[0].Controls[0] as LinkButton
   if ( lb != null )
  {
      lb.Attributes.Add("onclick", "return confirm('Delete?');")
  }

}
0
 

Author Comment

by:iflash
ID: 18815958
Ahh.. the code you gave doesnt seem to work for DetailsView... or maybe I'm just not experienced enough :(

After surfing for hours I've found a solution in C#... however I need it in VB because my C skills are non-existent. Do you know the VB equivalent for:

--------------------------------------------------------------------------------------------
protected void DetailsView1_ItemCreated(object sender, EventArgs e)
{
   // Test FooterRow to make sure all rows have been created
   if (DetailsView1.FooterRow != null)
   {
     // The command bar is the last element in the Rows collection
     int commandRowIndex = DetailsView1.Rows.Count-1;
     DetailsViewRow commandRow = DetailsView1.Rows[commandRowIndex];
     
     // Look for the DELETE button
     DataControlFieldCell cell = (DataControlFieldCell) commandRow.Controls[0];
     foreach(Control ctl in cell.Controls)
     {
       LinkButton link = ctl as LinkButton;
       if (link != null)
       {
          if (link.CommandName == "Delete")
          {
             link.ToolTip = "Click here to delete";
             link.OnClientClick = "return confirm('Do you really want to delete this record?');";
          }
       }
    }
}
--------------------------------------------------------------------------------------------

That would help heaps!
0
 
LVL 13

Expert Comment

by:KarinLoos
ID: 18816294
mm my vb skills are not that good, more of a c# person. but here goes
If DetailsView1.FooterRow != null Then
  Dim  commandRowIndex as Integer = DetailsView1.Rows.Count - 1
  Dim commandRow as DetalsViewRow = CType( DetailsView1.Rows( commandRowIndex ), DetailsViewRow)
  Dim cell as DataControlFieldCell  = CType( commandRow.Controls(0), DataControlFieldCell  )
  For Each ctl As Control In cell.Controls
      Dim lnk as LinkButton = CType( ctl, LinkButton )
      if lnk != null then
          If lnk.CommandName = "Delete" Then
              lnk.OnClientClick = " return confirm( 'Delete?' ); "
          End If
       End If
   Next
End If
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 13

Expert Comment

by:KarinLoos
ID: 18816311
in case the !=  doesnt work ( not equal ) then use <> 

ps a good compairson site for vb.net versus c# is
http://www.harding.edu/USER/fmccown/WWW/vbnet_csharp_comparison.html
0
 

Author Comment

by:iflash
ID: 18816409
Getting close!

how is:

protected void DetailsView1_ItemCreated(object sender, EventArgs e)

converted to VB?
0
 
LVL 13

Accepted Solution

by:
KarinLoos earned 125 total points
ID: 18822284
full code
Protected Sub DetailsView1_ItemCreated(ByVal sender As Object, ByVal e As System.EventArgs)
        If Not (DetailsView1.FooterRow Is Nothing) Then
              Dim  commandRowIndex as Integer = DetailsView1.Rows.Count - 1
              Dim commandRow as DetalsViewRow =  DetailsView1.Rows( commandRowIndex )
             Dim cell as DataControlFieldCell  = CType( commandRow.Controls(0), DataControlFieldCell  )
            ' Loop through controls to find Cancel button
            For Each ctl As Control In cell.Controls
                If TypeOf ctl Is LinkButton  Then
                    Dim lnk As LinkButton  = CType(ctl, LinkButton)
                    If lnk.CommandName = "Delete" Then
                         lnk.OnClientClick = " return confirm( 'Delete?' ); "
                    End If
                End If
            Next
        End If
0

Featured Post

MS Dynamics Made Instantly Simpler

Make Your Microsoft Dynamics Investment Count  & Drastically Decrease Training Time by Providing Intuitive Step-By-Step WalkThru Tutorials.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

ASP.Net to Oracle Connectivity Recently I had to develop an ASP.NET application connecting to an Oracle database.As I am doing it first time ,I had to solve several problems. This article will help to such developers  to develop an ASP.NET client…
User art_snob (http://www.experts-exchange.com/M_6114203.html) encountered strange behavior of Android Web browser on his Mobile Web site. It took a while to find the true cause. It happens so, that the Android Web browser (at least up to OS ver. 2.…
Nobody understands Phishing better than an anti-spam company. That’s why we are providing Phishing Awareness Training to our customers. According to a report by Verizon, only 3% of targeted users report malicious emails to management. With compan…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

739 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question