如何从datatable传递参数到嵌入式音乐播放器? vb.net

时间:2012-04-09 00:13:08

标签: datatable media-player audio-player playlists

我有一个小型音乐网站,您可以在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="&lt;img src='Images/play.png' border='0'/&gt;" >             
         </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

非常感谢。

gridview example

1 个答案:

答案 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