我有一个小型音乐网站,您可以在gridview中查看歌曲并播放/下载它们。现在我想玩嵌入式音乐播放器。当我用谷歌搜索它时,有很多嵌入式音乐播放器和例子,但大多数只是用固定的歌曲URL来播放。我无法找到如何从我目前拥有的gridview将参数传递给嵌入式音乐播放器。
我现在拥有的。 Song_Name表示上传文件夹中mp3文件的名称,该文件夹位于数据表中。
<asp:GridView ID="gridview1" runat="server" AutoGenerateColumns="False" >
<Columns>
<asp:HyperLinkField DataNavigateUrlFields="Song_Name" Target="_blank"
DataNavigateUrlFormatString='~/Uploads/{0}' Text="<img src='Images/play.png' border='0'/>" >
</asp:HyperLinkField>
</Columns>
</asp:GridView>
背后的代码
On PageLoad
Dim dtable = GetSong()
gridview1.datasource = dtable
gridview1.databind()
我可能会使用的简单嵌入式播放器代码。
<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>
在这个例子中,我必须将gridview中的Song_Name文件名(例如http://www.mysite.com/uploadds/Song_Name)传递给用于嵌入式播放器的audioUrl。我该怎么做 ?基本上,如果用户点击,播放每首歌曲的gridview上的按钮,我想使用嵌入式音乐播放器播放歌曲。请参阅girdview示例。 Playbutton是超链接字段,如上面的代码所示。抱歉英语不好。 :d
非常感谢。
→
答案 0 :(得分:0)
没有人回答我的问题。我不确定我的问题是否不够明确,人们无法理解。好吧,我终于找到了解决问题的方法。所以我想分享我的解决方案。希望它能帮助那些需要使用Gridview的人。
为了达到这个目的,我必须在gridview中添加一个隐藏的标签字段作为
<ItemTemplate>
<asp:Label ID="lblSongNam" Visible="false" runat="server" Text='<%#Eval("Song_Name") %>'></asp:Label>
</ItemTemplate>
你还需要一个空的Div,你希望嵌入式音乐播放器显示为
<div id="musicplayer" runat="server"></div>
必须为Div。
添加runat =“server”属性在Gridview 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
在这个例子中,我使用谷歌flash音频播放器,但播放器当然可以是任何东西。使用StringBuilder和服务器端Div操作来自asp.net代码的HTML或Javascript代码非常方便,可以使用Div的InnerHtml属性并在运行时更改内容。
全心全意,
L