简体   繁体   English

如何使用javascript从GridView获取URL?

[英]How to get URL from GridView using javascript?

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="ID" DataSourceID="SqlDataSourceVideo" >
    <Columns>
        <asp:BoundField DataField="VideoUrl" HeaderText="VideoUrl" 
            SortExpression="VideoUrl" />
        <asp:BoundField DataField="ID" HeaderText="ID" 
            SortExpression="ID" InsertVisible="False" ReadOnly="True" />
        <asp:BoundField DataField="Video_Name" HeaderText="Video_Name" 
            SortExpression="Video_Name" /> 
        <asp:CommandField ShowDeleteButton="True" />
    <asp:TemplateField>
        <ItemTemplate>
        <asp:Button ID="ButtonPlay" runat="server" CommandName="Play"
            CommandArgument='<%# DataBinder.Eval(Container.DataItem,"VideoUrl") %>'
            Text="Play" OnClientClick="playVideo()"></asp:Button>

JavaScript code for play URL: 播放网址的JavaScript代码:

<script type="text/javascript" language="javascript">
    function playAudio(URL){
        if (URL != "")
        {
            document.Player.filename = URL;
            document.getElementsByName("mediaPlayer").src=URL; 
            document.getElementsByName("mediaPlayer").play();
            document.Player.showcontrols = true;
            document.Player.height = 40;
            document.Player.play();    
        }
    }
</script>

Can anyone tell me how to get URL value from gridview? 谁能告诉我如何从gridview获取URL值? Thanks in advance. 提前致谢。

Try this, 尝试这个,

<asp:Button ID="ButtonPlay" runat="server" CommandName="Play" 
     CommandArgument='<%# DataBinder.Eval(Container.DataItem,"VideoUrl") %>' 
     Text="Play" 
     OnClientClick='<%# DataBinder.Eval(Container.DataItem,"VideoUrl", "playVideo('{0}')") %>'>
</asp:Button>

I would change your BoundField into a TemplateField 我会将你的BoundField更改为TemplateField

<asp:TemplateField SortExpression="VideoUrl" HeaderText="Video Url">
    <span class='videoUrl<%# DataBinder.Eval(Container, "RowIndex") %>'><%# Eval("VideoUrl") %></span>
</asp:TemplateField>

Then, to get the url from row three: 然后,从第三行获取网址:

var span = document.getElementsByClassName("videoUrl3")[0];
var url = span.textContent ? span.textContent : span.innerHTML;
OnClientClick='<%# EVAL("VideoUrl", "return playAudio({0})") %>'/> 

在你的按钮中使用它。希望它有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM