Controllo datagrid personalizzato click su pulsante

giovedì 27 luglio 2006 - 12.34

cnnmax Profilo | Junior Member

Ciao.
Sto provando a creare un controllo datagrid personalizzato.
La griglia funziona in modifica e cancellazione normalmente.

Ora stavo provando a gestire l'inserimento.
Ho aggiunto un pulsante al controllo e alla sua pressione vorrei mandare la griglia in edit su una riga vuota.

Il problema è che non riesco ad intercettare l'evento click del pulsate del controllo.
In pratica il click sul pulsante deve lanciare una funzione interna "AddNew" che si preoccupa di aggiungere una riga al datagrid e mandarla in modifica


Grazie.

alx_81 Profilo | Guru

Ciao!
Ti consiglio di indicare nella proprietà CommandName del button che inserisci un valore a tua scelta (ad esempio "INS").
Poi lo gestisci tramite l'evento ItemCommand del datagrid.
Ti chiedi se e.CommandName = "INS", ed in caso positivo fai la tua AddNew()..

L'ItemCommand viene scatenato ogni qual volta esegui un comando sulla griglia (bottoni, linkbutton, ecc..)
fammi sapere..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

cnnmax Profilo | Junior Member

scusa ma non mi sono spiegato bene.

Il pulsante non appartiene alla griglia è esterno.
Sto cercando di creare un datagrid personalizzato composto dal datagrid e da una toolbar, come insieme di pulsanti, per la gestione dell'inserimento e poi, se ci riesco, per la paginazione.

Ciao

alx_81 Profilo | Guru

Ok..
Strano che non intercetti l'evento del pulsante.. se si tratta di un asp:button, genera automaticamente il ButtonClick se clicki due volte a design time..
proprio non passa dall'evento?
Alx81 =)

http://blogs.dotnethell.it/suxstellino

cnnmax Profilo | Junior Member

e'un imagebutton.

Ho provato dichiarando WithEvents e controllando l'evento ma niente da fare.
Ho creato un evento ad hoc e dichiarato addHandler

in pratica :
ho dichiarato il pulsante:
Public BtnNew As ImageButton = New ImageButton

aggiunto il pulsante al controllo
Protected Overrides Sub CreateChildControls()

BtnNew.CommandName = "new"
BtnNew.CausesValidation = True
Me.Controls.Add(BtnNew)

AddHandler BtnNew.Click, AddressOf Me.ToolBar_Click
End Sub
e fatto il render visualizzare il pulsante.

Protected Overrides Sub Render(ByVal writer As HtmlTextWriter)
pcImgBtnNew.RenderControl(writer)
MyBase.Render(writer)
End Sub

Ma alla pressione del tasto non viene scatenato l'evento ToolBar_Click

alx_81 Profilo | Guru

prova a spostare la creazione dell'imagebutton e del suo handler nella OnInit()..
fammi sapere..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

cnnmax Profilo | Junior Member

Niente da fare.

E' come se 'evento non fosse proprio dichiarato.

alla pressione del tasto si vede il postback e basta. Ma non entra per niente nella routine dell'evento.

alx_81 Profilo | Guru

se vuoi postami il codice..
provo a guardarci con più calma..
Alx81 =)

http://blogs.dotnethell.it/suxstellino

cnnmax Profilo | Junior Member

Grazie

Ti invio la classe che sto usando

alx_81 Profilo | Guru

non riesco a farla funzionare..
sul Render ho un cast non valido..
Hai provato a fare l'aggiunta dell'handler nel prerender?

Alx81 =)

http://blogs.dotnethell.it/suxstellino

cnnmax Profilo | Junior Member

Non funziona neanche nel prerender.

Ieri nel mondo internet ho trovato anche un altra cosa.

Esiste un metodo "CreateControlHierarchy" che serve per creare un'istanza di tutti i controlli costitutivi necessari e compone l'output finale

Inserendo la creazione del pulsante in questo metodo l'evento associato viene scatenato.

Ora posto un altro thread relativo a questo metodo.
Vorrei capirne un po di più anche perchè l'evento viene scatenato ma la posizione dei controlli non riesco gestirla

Grazie

alx_81 Profilo | Guru

Ma tu riesci a visualizzare il controllo??
se io provo ad utilizzare la tua classe, mi dà errore di cast sul render, indicando che un imagebutton non può essere castato in htmltable..
se solo riuscissi a provarlo..
Alx81 =)

http://blogs.dotnethell.it/suxstellino
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5