Fileupload in detailsview

mercoledì 23 aprile 2014 - 16.47

jjchuck Profilo | Senior Member

ariciao
ho un detailsview con un campo immagine (inserisco la foto in un sqlserver datatype image) ...
l'ho convertito in un template e ho inserito un fileupload e un button per salvare l'immagine nel database...

sqldatasource :
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

template:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

codebehind:
Protected Sub Button1_Click1(sender As Object, e As EventArgs) Dim fu As FileUpload = TryCast(DetailsView1.FindControl("FileUpload1"), FileUpload) If fu.HasFile Then SqlDataSource1.Insert() End If End Sub

se provo a inserire/modificare ottengo:
System.InvalidOperationException: Impossibile trovare il controllo 'FileUpload2' in ControlParameter 'foto'.

alx_81 Profilo | Guru

>ariciao
ciao

>se provo a inserire/modificare ottengo:
>System.InvalidOperationException: Impossibile trovare il controllo
>'FileUpload2' in ControlParameter 'foto'.
credo che il problema sia che il ControlParameter non vede i controlli innestati dentro un Template.
Ragion per cui dovrai trovare un workaround. Ho cercato per un po'.. e una cosa interessante da provare può essere questa:
http://geekswithblogs.net/AzamSharp/archive/2006/08/27/89475.aspx

facci sapere!
ciao
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://blogs.dotnethell.it/suxstellino
http://suxstellino.wordpress.com
http://mvp.microsoft.com/profiles/Alessandro.Alpi

jjchuck Profilo | Senior Member

Si il problema è quello ...
... and the winner is...SEMPRE TU...grande

evidentemente bisogna anche saper cercare

cmq a chi possa servire scrivo che non occorre un button per fare l'insert/update...
da quello che vedo basta usare il command button che di default ti da il detailsview....invece io facevo:
Private Function FindControl(parent As Control, id As String) As Control For Each child As Control In Parent.Controls Dim childId As String = String.Empty If child.ID IsNot Nothing Then childId = child.ID End If If childId.ToLower() = ID.ToLower() Then Return child Else If child.HasControls() Then Dim response As Control = FindControl(child, ID) If response IsNot Nothing Then Return response End If End If End If Next Return Nothing End Function Protected Sub Button4_Click(sender As Object, e As EventArgs) Dim fu As FileUpload = DirectCast(FindControl(DetailsView1, "FileUpload1"), FileUpload) ' If fu IsNot Nothing Then If fu.HasFile Then SqlDataSource1.Insert() End If ' End If End Sub

...non sai quanto ho cercato in rete per capire cosa diavolo voleva...

...ciao Ale e grazie ancora
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5