1

我有一个小型音乐网站,您可以在网格视图中查看歌曲并播放/下载它们。现在我想通过嵌入式音乐播放器播放。当我用谷歌搜索时,有很多嵌入式音乐播放器和示例,但其中大多数只是说要播放的歌曲的固定 URL。我无法从我目前拥有的 gridview 中找出如何将参数传递给嵌入式音乐播放器。

我现在拥有的。Song_Name 表示数据表中 Uploads 文件夹中 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”&gt;</embed>

在此示例中,我必须将 gridview 中的 Song_Name 文件名 + 固定 URL(例如http://www.mysite.com/uploadds/Song_Name)传递给嵌入式播放器的 audioUrl。我该怎么做 ?基本上,如果用户单击每首歌曲的网格视图上的播放按钮,我想使用嵌入式音乐播放器来播放歌曲。请参阅 girdview 示例。Playbutton 是上面代码中的超链接字段。抱歉英语不好。:D

非常感谢。

大号

网格视图示例

4

1 回答 1

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

在这个例子中,我使用了 google flash 音频播放器,但播放器当然可以是任何东西。使用 StringBuilder 和服务器端 Div 使用 Div 的 InnerHtml 属性并在运行时更改内容,这是从 asp.net 代码后面操作 HTML 或 Javascript 代码的非常方便的方法。

谢谢大家,

大号

于 2012-04-19T09:07:21.980 回答