2009-11-28 65 views
1

我有一个页面内的MasterPage和一些非常丑陋的丑陋的自动生成的ID ListView。如何通过usercontrol使用swfobject嵌入多个Flash Player实例?

比如......“ctl00_workbenchPlaceHolder_ListView1_ctrl1_LibItem2One”

使用swfobject.embedSWF(...)要求我交出我的网页上一个div可与视对象/嵌入标记被替换的ID浏览器环境。

我的目标是向用户展示他们已上传到其网站的视频集合,以便他们可以查看它们并根据需要更改一些相关数据。

因此,ListView通过一个SQLDataSource填充,它目前提供了一些指向.flv文件的URL。

但是,如果我“在我的用户控制,因为我可以再有一个以上的ID =‘replaceme’和swfobject的差赢得”把< DIV ID =“replaceme” > </DIV >它是不是要去工作不喜欢它。

所以我的邪恶解决方案是在我的用户控件中放入一个< asp:Literal >,并将脚本,函数名称和div标记id构建为字符串。

如果从数据库中检索到的库对象是视频并切换到MultiView控件的相关视图,则会调用ApplyVideoConfiguration。

protected void ApplyVideoConfiguration() 
{ 
    MultiViewLibItem.ActiveViewIndex = 3; 
    string functionName = "MakeFlashFor_" + this.ClientID; 
    string divId = "fp" + this.ClientID; 
    VideoScriptLiteral.Text = 
     "<script type=\"text/javascript\">" + 
     "Sys.Application.add_load(" + functionName + ");" + 
     "function " + functionName + "(){" + 
     "swfobject.embedSWF('PanamaVideoThumbnail.swf', '" + divId + "', '140', '127', '10');" + 
     "};" + 

     "</script>" + 
     "<div id=\"" + divId + "\" ></div>" ; 
} 

我想知道,一个解决方案是多么糟糕的是这样的,我是当它涉及到的最佳实践,但我的直觉告诉我,这是真的不好完全没有经验,虽然它在嵌入的目的得逞一些Flash Player实例。

任何人都可以帮助我使它美丽吗?

回答

2

嗯,我发现了一个改进(也更少尴尬)的解决方案。

对于初学者,我会彻底阅读swfobject2_2文档。

决定我应该真的把更多的手肘油脂,并实际上写一些标记!

所以我打得四处尝试使用<对象RUNAT =“服务器” >标签,我可以从代码隐藏管理,但发现ASP.Net帮忙,不会让你做,反正...

的penny终于下降了,我可以使用内联代码在每个数据绑定ListViewItem的基础上处理我的标记。

我的结果:

  <asp:View runat="server" ID="VideoView"> 
       <% string flashvars = "videourl=../../" + ItemRelativeUri;%> 
       <object id="flashplayer" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="110" height="90" name="obout"> 
        <param name="movie" value="flash/libview.swf" /> 
        <param name="flashvars" value="<% = flashvars %>" /> 
        <asp:Literal runat="server" ID="LiteralParamFlashVars" /> 
        <!--[if !IE]>--> 
        <object type="application/x-shockwave-flash" 
        data="flash/libview.swf?<% =flashvars %>" 
        width="110" 
         height="90" name="obin"> 
         <!--<![endif]--> 
         <p> 
          You need Flash Player v 10 or better to view this video.</p> 
         <!--[if !IE]>--> 
        </object> 
        <!--<![endif]--> 
       </object> 
      </asp:View> 
+0

盈通,您可以将自己的答案的答案标志着你的问题,关闭循环 – 2009-12-12 19:35:51

相关问题