2016-06-19 85 views
1

我有链接在列表视图。当点击一个链接时,我想显示一个引导模式来播放YouTube视频,但这是显示每个链接点击时第一个链接的模式。视频地址保存在数据库中。这是我的代码。引导模式不工作在asp.net listview控制

<div id="myModal" class="modal fade"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 

      </div> 
      <div class="modal-body"> 
       <iframe id="cartoonVideo" width="760" height="428" src="<%# Eval("Embeded code") %>" frameborder="0" allowfullscreen></iframe> 
      </div> 
     </div> 
    </div> 
</div> 

回答

0

只需复制并在解决方案中粘贴下面的代码:

后面的代码:

public partial class ListViewAndModalExample : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     if(!Page.IsPostBack) 
     { 
      var v1 = new Video { VideoName = "CRASHING DRONES AND WRECKING LAMBOS", VideoUrl = "https://www.youtube.com/embed/AAmrIVa7UyA" }; 
      var v2 = new Video { VideoName = "FIRST EVER BOOSTED BOARD 2!!!", VideoUrl = "https://www.youtube.com/embed/rdNWP6sBgCk" }; 
      ListView1.DataSource = new List<Video> { v1, v2 }; 
      ListView1.DataBind(); 
     } 
    } 
} 

public class Video 
{ 
    public string VideoUrl { get; set; } 
    public string VideoName { get; set; } 
} 

.ASPX:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.3/jquery.min.js"></script> 
    <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
    <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> 
    <script type="text/javascript"> 
     $(function() { 

      $(".videoLink").click(function() { 

       var link = $(this); 
       var url = $(link).data('url'); 

       $("#cartoonVideo").attr('src', url); 
       $("#myModal").modal('show'); 

      }) 

     }); 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ListView ID="ListView1" runat="server"> 
      <ItemTemplate> 
       <a href="#" class="videoLink" data-url='<%# Eval("VideoUrl") %>'><%# Eval("VideoName") %></a><br /> 
      </ItemTemplate> 
     </asp:ListView> 
    </form> 
    <div id="myModal" class="modal fade"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> 
      </div> 
      <div class="modal-body"> 
       <iframe id="cartoonVideo" width="420" height="345"></iframe> 
      </div> 
     </div> 
    </div> 
</div> 
</body> 
</html> 

输出:

Displaying YouTube videos using ListView and bootstrap modal popup

+0

我已将视频网址保存在数据库中,但此方法使用硬编码。此方法适用于少量视频但不适用于大量视频 – user3900427

+0

我已通过转换数据表来解决问题进入列表 – user3900427

+0

感谢兄弟.... – user3900427

0

尝试使用周围像这样的SRC单引号...

src='<%# Eval("Embeded code") %>' 

如果不工作,然后张贴正在生成链接到YouTube的代码。

+0

​​ – user3900427

+0

我想你只是在你的src的开头缺少http或https,例如https://youtube.com/embed/wJWj7rGj3uY – cymorg