Formview: visualizzare i template manualmente senza avere un datasourc...

lunedì 24 agosto 2009 - 16.36

Gluck74 Profilo | Guru

Salve a tutti, espongo il mio problema un po' atipico.
Ho un piccolo framework casalingo che, dato un panel con dentro controlli, data una tabella DB, crea una classe business che rispecchia la tabella DB con determinati attributi.
In seguito mi basta fare
viewObjPanel(obj, myPanel)
dove obj è la classe business, myPanel il pannello con tutti i controlli, per visualizzare tutti i dati nella pagina aspx.

Ora volendo migliorare il tutto, nella pagina non ci metto più un semplice pannello ma un FormView. Qui nasce il problema: funziona tutto, ovvero posso bindare i dati dell'istanza "obj" sul pannello contenuto ad esempio nell'ItemTemplate del formview, ma il formView non capisce di essere "bindato" e quindi non mi fa vedere nulla.
Se dico al formview di essere in "insert", vedo il pannello con i controlli, ma non riesco in ReadOnly ed in Edit.
Mi sapete dire come faccio a visualizzare il contenuto del formView forzando la visualizzazione? oppure c'è qualche altro medoto?
Vi posto un po di codice con squesta premessa:
1 - il formView ha i classici template con tutti i controlli che mi servono
2 - La classe obj_anagrafica ha la proprietà 1:1 con la tabella, ed un attributo per ogni proprietà specifica l'ID del controllo da associare.
3 - La funzione ViewObjValori associa appunto i valori delle proptietà dell'istanza ai controlli.

protected void L_Cliente_Click(object sender, EventArgs e) { obj_AnagraficaCliente obj = new obj_AnagraficaCliente(this.user_id.ToString()); obj.CODCLIENTE = "xx001"; obj.ID_OFFERTA = 3; obj.INT_PROGRESSIV = 0; obj.INTERLOCUTORECLIENTE = "Glauco Cucchiar"; obj.LUOGOINSTALLAZIONEIMPIANTO = "Torino"; obj.MAILINTERLOCUTORECLIENTE = "cpsglauco@yahoo.it"; obj.TELINTERLOCUTORECLIENTE = "393202020202"; this.Cliente1.Mode = FormViewMode.ReadOnly; if (this.ViewObjValori(obj,this.Cliente1.getInternalPanel(obj.PANEL))) { Response.Write("yes"); } else { Response.Write("no"); } }

Nel controllo che contiene il formview:

public Panel getInternalPanel(string sPannello) { Panel pannello = new Panel(); switch (this.FormView1.CurrentMode) { case FormViewMode.Edit: this.FormView1.EditItemTemplate.InstantiateIn(this.FormView1); break; case FormViewMode.Insert: this.FormView1.InsertItemTemplate.InstantiateIn(this.FormView1); break; case FormViewMode.ReadOnly: this.FormView1.ItemTemplate.InstantiateIn(this.FormView1); break; } return (Panel)FormView1.FindControl(sPannello); return null; }


Tutto funzione perché i valori della classe vanno nei relativi controlli, la funzione abbinata al click del pulsante scrive regolarmente "yes", ma il formview non ne vuole sapere di apparire......
Help Please


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