2012-04-09 4 views
1

Ich habe eine kleine Musik-Website, die Sie Lieder in einer Gridview sehen und spielen/herunterladen können. Jetzt möchte ich einen eingebetteten Musikplayer spielen. Es gibt so viele eingebettete Musik-Player und Beispiele, wenn ich es google, aber die meisten von ihnen sagen nur mit fester URL von Songs zu spielen. Ich konnte nicht herausfinden, wie man Parameter von der Gridview, die ich momentan habe, an einen eingebetteten Musikplayer übergibt.Wie Parameter an eingebettete Musik-Player von Datentabelle übergeben? vb.net

Was ich jetzt habe. Song_Name repräsentiert den Namen der mp3-Datei im Uploads-Ordner, der sich in der Datentabelle befindet.

 <asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="False" > 
     <Columns> 
     <asp:HyperLinkField DataNavigateUrlFields="Song_Name" Target="_blank" 
      DataNavigateUrlFormatString='~/Uploads/{0}' Text="&lt;img src='Images/play.png' border='0'/&gt;" >    
     </asp:HyperLinkField>   
     </Columns>     
     </asp:GridView> 

Code hinter

  On PageLoad 
      Dim dtable = GetSong() 
      gridview1.datasource = dtable 
      gridview1.databind() 

Einfach eingebetteten Player-Code, die ich verwenden könnte.

  <embed type=”application/x-shockwave-flash” flashvars=”audioUrl=MP3_FILE_URL” 
      src=”http://www.google.com/reader/ui/3523697345-audio-player.swf” width=”400″ height=”27″ 
     quality=”best”></embed> 

In diesem Beispiel habe ich Dateinamen zu übergeben, die SONG_NAME in der Gridview + Fest url wie http://www.mysite.com/uploadds/Song_Name für den eingebetteten Player audioUrl ist. Wie mache ich es ? Grundsätzlich, wenn ein Benutzer auf die Gridview eines jeden Songs klickt, spiele ich den eingebetteten Music Player, um den Song abzuspielen. Bitte sehen Sie girdview Beispiel. Playbutton ist das Hyperlinkfeld wie der obige Code. Entschuldigung für schlechtes Englisch. : D

Vielen Dank.

L

gridview example

Antwort

0

Niemand antwortete auf meine Frage. Ich bin mir nicht sicher, ob meine Frage für die Leute nicht klar genug war. Nun, ich habe endlich einen Weg gefunden, das Problem zu lösen. Also möchte ich meine Lösung teilen. Hoffe es hilft anderen, die mit Gridview viel arbeiten müssen.

Um das zu erreichen, habe ich innerhalb gridview als

<ItemTemplate> 
    <asp:Label ID="lblSongNam" Visible="false" runat="server" Text='<%#Eval("Song_Name") %>'></asp:Label> 
    </ItemTemplate> 

ein verstecktes Beschriftungsfeld setzen und Sie müssen auch eine leere Div wo Sie die eingebettete Musik-Player angezeigt werden soll als

<div id="musicplayer" runat="server"></div> 

Es ist wichtig, runat = "server" -Eigenschaft für Div.

In dem Code hinter der Gridview als

RowCommand
 Dim indexx As Integer = Convert.ToInt32(e.CommandArgument) 
     Dim roww As GridViewRow = GridView1.Rows(indexx) 
     Dim usernamee As String = Page.User.Identity.Name 
     Dim Song_Namee As String = (DirectCast(roww.FindControl("lblSongNam"), Label)).Text 
     Dim str As New StringBuilder() 
     str.Append("<embed type='application/x-shockwave-flash' flashvars='audioUrl=http://www.mysite.com/songs/") 
     str.Append(Song_Namee) 
     str.Append("&autoPlay=true' src='http://www.google.com/reader/ui/3523697345-audio-player.swf'") 
     str.Append(" width='700' height='27' quality='best'></embed>") 
     musicplayer.InnerHtml = str.ToString 

In diesem Beispiel habe ich google Flash-Audio-Player, aber der Spieler kann alles natürlich sein. Es ist ziemlich praktisch, HTML- oder Javascript-Code aus asp.net-Code hinter StringBuilder und serverseitige Div zu manipulieren, um die InnerHtml-Eigenschaft von Div zu verwenden und den Inhalt zur Laufzeit zu ändern. alle

Danke,

L

Verwandte Themen