[1.1][Datagrid]Controle javascript sur bouton Ajout ne fait pas le postback
Bonjour,
J'ai un datagrid avec un footer dans lequel il y a un bouton pour ajouter la ligne en base de donnée. Je veux que quand ce bouton est cliqué il devienne disabled pour empecher un double clic.
Je sais le faire sur un bouton en dehors du datagrid :
Code:
btn_Save.Attributes.Add("onclick", "this.disabled=true;this.value='Patienter...';" + Page.GetPostBackEventReference(btn_Save))
Je sais ajouter une confirmation sur un bouton d'une ligne du datagrid
Code:
1 2 3 4
| If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.EditItem) Then
Dim _myButton As ImageButton = CType(e.Item.FindControl("btnDeleteF"), ImageButton)
_myButton.Attributes.Add("onclick", "javascript:return confirm(""Etes vous sur de vouloir supprimer cette ligne ?"");")
_myButton.Visible = True |
Malheureusement quand je veux rendre mon bouton d'ajout dans le footer disabled, ce marche mais le postback ne se produit pas. J'ai essayé ceci :
Code:
1 2
| Dim _myButton As Button = CType(e.Item.FindControl("btn_add"), Button)
_myButton.Attributes.Add("onclick", "this.disabled=true;this.value='Patienter...';return true;") |
cela
Code:
1 2
| Dim _myButton As Button = CType(e.Item.FindControl("btn_NT_ADD"), Button)
_myButton.Attributes.Add("onclick", "this.disabled=true;this.value='Patienter...';" + Page.GetPostBackEventReference(_myButton.UniqueID)) |
dans ce cas, UniqueID est juste le nom du bouton mais pas un nom de la forme ledatagrid_ct2_lenomdubouton
et d'autre essai mais rien de conculant.
J'espère que vous pourrez m'aider. D'avance merci
Après une bonne nuit de sommeil...
Après une bonne nuit de sommeil, la réponse est venue toute seule :
Code:
1 2 3 4 5
|
Dim _myButton As Button = CType(e.Item.FindControl("btn_add"), Button)
Dim csScriptPostBack As String
csScriptPostBack = "__doPostBack('" & mon_datagrid.UniqueID & "$_ctl" & mon_datagrid.Items.Count + 2 & "$" & _myButton.UniqueID & "','');" '+2 car on a un header et un footer
_myButton.Attributes.Add("onclick", "this.disabled=true;this.value='Patienter...';" & csScriptPostBack) |