---
title: "Sätta klientskript på CommandField-knapp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/dotnet/152017-sätta-klientskript-på-commandfield-knapp"
topic: ".NET"
topic_url: "https://www.webforum.nu/amne/dotnet"
author: "ironhead"
published: "2006-10-03T13:24:01.000Z"
updated: "2006-10-04T11:36:24.000Z"
replies: 7
views: 1438
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/dotnet/152017-sätta-klientskript-på-commandfield-knapp"
---

# Sätta klientskript på CommandField-knapp

## #1 — ironhead, 2006-10-03T13:24Z

Hej!

Jag har ett "CommandField" i min Gridview1 som håller en "Deleteknapp"...

```
<asp:CommandField ButtonType="Image" DeleteImageUrl="cancel.gif" />
```

...som jag skulle vilja lägga ett onclickevent på...

```
???.Attributes.Add("onclick","alert('delklick')")
```

Hur kommer jag åt deleteknapparna i Commandfield?

Permalänk: https://www.webforum.nu/p/152017

## #2 — Gladh, 2006-10-04T05:46Z

Nu har jag inget CommandField utan ett ButtonField men så här kommer jag åt min Button i mitt ButtonField.

```
((Button)gridViewRowEventArgs.Row.Cells[3].Controls[0])
```

Det kanske du kan använda dig av för ditt commandfield, eller så får du gör om det till en buttonfield.

\- M

Permalänk: https://www.webforum.nu/p/1876968

## #3 — ironhead, 2006-10-04T07:33Z

Gjorde såhär:

```
    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) 
Handles GridView1.RowDataBound
        If (e.Row.RowType = DataControlRowType.DataRow) Then
            e.Row.Cells(0).Attributes.Add("onclick", "alert('delklick')")
        End If
    End Sub
```

då kommer man ju åt alla knappar i första kolumnen...kan man sedan urskilja delete-knappen?

Permalänk: https://www.webforum.nu/p/1876985

## #4 — ironhead, 2006-10-04T07:39Z

Kanske inte det snyggaste sättet, men fungerar...

```
    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
Handles GridView1.RowDataBound
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim myTableCell As TableCell
            myTableCell = e.Row.Cells(0)
            Dim myDeleteButton As ImageButton
            myDeleteButton = myTableCell.Controls(2)
            myDeleteButton.Attributes.Add("onclick", "alert('delklick')")
        End If
    End Sub
```

Permalänk: https://www.webforum.nu/p/1876988

## #5 — ironhead, 2006-10-04T09:21Z

Förkortad version:

```
    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
Handles GridView1.RowDataBound
        If (e.Row.RowType = DataControlRowType.DataRow) Then
            CType(e.Row.Cells(0).Controls(2), ImageButton).OnClientClick = "alert('delklick')"
        End If
    End Sub
```

Permalänk: https://www.webforum.nu/p/1877010

## #6 — ironhead, 2006-10-04T09:43Z

Kom på att detta var värdelöst, då jag trycker på edit-knappen, så sätts javascriptet även på avbryt-knappen i edit-läget. :(

Permalänk: https://www.webforum.nu/p/1877012

## #7 — ironhead, 2006-10-04T10:12Z

Mycket bättre, på rätt knapp..och endast rätt knapp, det görs en postback, men raderar inte raden...varför?

```
    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
Handles GridView1.RowDataBound
        Dim row As GridViewRow = e.Row
        If row.RowType = DataControlRowType.DataRow Then
            Dim cell As TableCell = e.Row.Cells(0)
            For Each ctl As Control In cell.Controls
                If TypeOf ctl Is ImageButton Then
                    Dim link As ImageButton = CType(ctl, ImageButton)
                    If link.CommandName = "Delete" Then
                        link.ToolTip = "Radera"
                        link.Attributes("onclick") = "javascript:return " & _
                        "confirm('Are you sure you want to delete the selected record?')"
                    End If
                End If
            Next
        End If
    End Sub
```

Permalänk: https://www.webforum.nu/p/1877016

## #8 — ironhead, 2006-10-04T11:36Z

Tillslut så :)

```
    Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
Handles GridView1.RowDataBound
        Dim row As GridViewRow = e.Row
        If row.RowType = DataControlRowType.DataRow Then
            Dim cell As TableCell = e.Row.Cells(0)
            For Each ctl As Control In cell.Controls
                If TypeOf ctl Is ImageButton Then
                    Dim link As ImageButton = CType(ctl, ImageButton)
                    If link.CommandName = "Delete" Then
                        link.ToolTip = "Radera"
                        link.Attributes("onclick") = "if(confirm('Vill du verkligen radera...?')){" + 
ClientScript.GetPostBackEventReference(link, "") & "}else{return false;}"
                    End If
                End If
            Next
        End If
    End Sub
```

Permalänk: https://www.webforum.nu/p/1877039

---

Tråden på webben: https://www.webforum.nu/amne/dotnet/152017-sätta-klientskript-på-commandfield-knapp
