La descrizione del problema è di una banalità allucinante:
a partire da link di un video di youtube (ad esempio "http://www.youtube.com/watch?v=qp9YBQkVJ14") che salvo in un db insieme alla descrizione ed altri dati sullo stesso
vorrei che nel detailView potessi inserire il codice per incorporare il video (in modo da mostrarne un'anteprima)
il codice per l'incorporazione (quello che youtube fornisce per ogni video) è il seguente
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/qp9YBQkVJ14&hl=it&fs=1&rel=0&color1=0xe1600f&color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/qp9YBQkVJ14&hl=it&fs=1&rel=0&color1=0xe1600f&color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>
In grassetto potete notare l'identificativo del video
ora le mie domande sono (se mi rispondente sarebbe gradito del codice) :
spero di essere stato chiaro nella descrizione del problema
Nezumi: La descrizione del problema è di una banalità allucinante: a partire da link di un video di youtube (ad esempio "http://www.youtube.com/watch?v=qp9YBQkVJ14") che salvo in un db insieme alla descrizione ed altri dati sullo stesso vorrei che nel detailView potessi inserire il codice per incorporare il video (in modo da mostrarne un'anteprima) il codice per l'incorporazione (quello che youtube fornisce per ogni video) è il seguente <object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/qp9YBQkVJ14&hl=it&fs=1&rel=0&color1=0xe1600f&color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/qp9YBQkVJ14&hl=it&fs=1&rel=0&color1=0xe1600f&color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object> In grassetto potete notare l'identificativo del video ora le mie domande sono (se mi rispondente sarebbe gradito del codice) : mi conviene trimmare il codice via dal link e salvare solo quello sul db? oppure (la soluzione che volevo adottare io) nel code behind della aspx che contiene il DetailView trimmare il codice del video e passarlo come "parametro" alla pagina in modo da poterne fare l'eval nel templateField che ospiterà l'anteprima spero di essere stato chiaro nella descrizione del problema
Vediamo se ho capito bene: nel db tu hai solo l'identificativo del sito, e lo vuoi passare tramite eval al details view? Se si, vuoi sapere come memorizzare il tuo identificativo avendo in input per esempio
http://www.youtube.com/watch?v=qp9YBQkVJ14
Dico bene?
Capisc e dotnet tu? No! E allor che parl a fà!
si in pratica voglio memorizzare nel db il link che youtube mette a disposizione per l'accesso diretto al video sul proprio sito e voglio che in fase di recupero dal db io possa parsare la stringa (il link) e tirarne fuori solo l'identificativo (perchè solo quello resta uguale tra il link diretto e l'incorporazione) così da poter nel detailView fare l'eval del solo identificativo e costruirmi tutti i tag per incorporare in questo modo:
<%# eval("idVideo","
<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/{0}&hl=it&fs=1&rel=0&color1=0xe1600f&color2=0xfebd01"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/{0}&hl=it&fs=1&rel=0&color1=0xe1600f&color2=0xfebd01" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>");
(perdonami se mancano tutti gli escape e la concatezione di ogni singola stringa per riga)
Per recuperare l'id, considerando che il link abbia sempre la stessa sintassi ti consiglio un piccolo tricks che si usa molto in javascript ed è il LastIndexOf
Dim str As String = "http://www.youtube.com/watch?v=qp9YBQkVJ14"
Dim idVideo As String = str.Substring(str.LastIndexOf("=") + 1)
Con questo codice dovresti sempre recuperare l'id del video. Cmq nel db per comodità puoi anche memorizzare direttamente l'id, senza tutta la parte http://... Per ciò che riguarda la visualizzazione, la stringa con l'eval nel details view dovrebbe andare bene.
capito...la tua mi sembra una buona soluzione nel frattempo ho trovato su internet quello che cercavo
nel code behind:
VB.NET
Dim str As String = DataBinder.Eval(e.Row.DataItem, "ProductID")
C#
String str = DataBinder.Eval(e.Row.DataItem, "ProductID")
non sono sicuro che "e" abbia una property che si chiama "Row" ma il concetto credo sia questo
Nezumi: capito...la tua mi sembra una buona soluzione nel frattempo ho trovato su internet quello che cercavo nel code behind: VB.NET Dim str As String = DataBinder.Eval(e.Row.DataItem, "ProductID") C# String str = DataBinder.Eval(e.Row.DataItem, "ProductID") non sono sicuro che "e" abbia una property che si chiama "Row" ma il concetto credo sia questo
Quello che tu hai scritto è praticamente uguale a quello che io ho scritto. Questa cosa dell'eval la puoi fare nella pagina aspx piuttosto che nella part di code-behind. Scegliere l'una o l'altra dipende essenzialmente da quello che devi fare tu. Se devi prendere l'id così com'è e metterlo in una stringa (con il format - {0}) puoi farlo tramite aspx. Se invece hai necessità di fare altre computazioni dai dati recuperati dal db, tipo una modifica particolare alla stringa, puoi usare il codice da code-behind. Dal punto di vista delle prestazioni, e ringrazio Michele per il tip, le due soluzioni sono uguali.
ti ringrazio per i consigli, proverò anche la soluzione che mi hai proposto,così da poter tenere in considerazione entrambi i metodi di elaborazione, lato server e lato client
Grazie ancora Antonio
ps: conto su di te per i prossimi problemi che incontrerò
Nezumi: ti ringrazio per i consigli, proverò anche la soluzione che mi hai proposto,così da poter tenere in considerazione entrambi i metodi di elaborazione, lato server e lato client
Lato server, lato client? Entrame le soluzioni sono lato server, mettere l'eval nella pagina aspx non significa interagire con il lato client. Entrambe sono modifiche lato server, perchè ASP.NET è una tecnologia server-side. Con il termine lato client, in genere si definisce un insieme di script, come ad esempio javascript, che vengono eseguiti direttamente sul pc della persona che sta accedendo alla risorsa web. Nel nostro caso, sia la pagina aspx che quella aspx.vb/aspx.cs vengono unite in compilazione dal runtime del .Net e poi viene inviata l'intero codice in XHTML verso la macchina che sta usufruendo della risorsa web.
In pratica, e sottolineo fortemente questa cosa, aspx e aspx.vb sono 2 facce della stessa medaglia, infatti se tu vai nella parte aspx.vb, leggerai nel momento in cui viene dichiarata la classe, che è una Partial Class!
Nezumi: Grazie ancora Antonio ps: conto su di te per i prossimi problemi che incontrerò
anytime you need! Io sono quà e cercherò di risponderti in tempi brevi :)
ehm...devo essermi perso qualcosa perchè in un tuo post ho letto di javascript...devo aver frainteso
Nezumi: ehm...devo essermi perso qualcosa perchè in un tuo post ho letto di javascript...devo aver frainteso
Si nel precedente, sottolineando che javascript è uno script client-side, ma quando si tratta si aspx si parla sempre di codice server-side.
lo so...per lato client intendevo javascript...va bè alla fine è un'incomprensione ^_^ e si finisce OT così
Associazione Culturale DotNetCampania - C.F.: 95127870632