2009-12-30 5 views
2

Je possède ce code html pour intégrer une vidéo dans une page ASPX:Utilisation des balises d'objets dans asp.net

<OBJECT ID="MediaPlayer" WIDTH="192" HEIGHT="190" CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" 
STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject"> 
<PARAM NAME="FileName" VALUE="videofilename.wmv"> 
<PARAM name="autostart" VALUE="false"> 
<PARAM name="ShowControls" VALUE="true"> 
<param name="ShowStatusBar" value="false"> 
<PARAM name="ShowDisplay" VALUE="false"> 
<EMBED TYPE="application/x-mplayer2" SRC="videofilename.wmv" NAME="MediaPlayer" 
WIDTH="192" HEIGHT="190" ShowControls="1" ShowStatusBar="0" ShowDisplay="0" autostart="0"> </EMBED> 
</OBJECT> 

La chose est, je veux définir ses paramètres de mon C# code-behind (fe, le chemin vers le fichier à lire).

Je sais que je devrais ajouter runat="server" mais ce n'est pas la seule chose. Le code-behind ne reconnaît aucun élément du type MediaPlayer, quoi qu'il arrive. (J'essaie d'y accéder à partir de mon Page_Load(..))

Comment est-ce que je devrais faire ceci?

10x

Répondre

2

Créez un HtmlGenericControl. Vous pouvez définir les attributs via la propriété Attributes via votre codebehind. Et ajoutez les sous-éléments par Controls.

HtmlGenericControl obj = new HtmlGenericControl("object"); 
HtmlGenericControl embedTag = new HtmlGenericControl("embed"); 
embedTag.Attributes["type"] = "application/x-mplayer2"; 

obj.Controls.Add(embedTag); 

flashPlaceHolder.Controls.Add(obj); 
2

Il n'y a pas de contrôle ASP.NET pour la balise OBJECT, vous devez générer son code HTML vous-même. Il y a deux façons simples de le faire. La première est d'utiliser <%%> dans votre fichier ASPX, comme ceci:

<OBJECT ID="MediaPlayer" WIDTH="192" HEIGHT="190" CLASSID="CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95" 
STANDBY="Loading Windows Media Player components..." TYPE="application/x-oleobject"> 
<PARAM NAME="FileName" VALUE="<% =FileName %>"> 
... 
</OBJECT> 

L'autre façon est de créer un LiteralControl dans votre codebehind, et définir son code HTML à ce que vous voulez:

LiteralControl myObject = new LiteralControl(); 
myObject.Text = 
    @"<OBJECT ID='MediaPlayer' WIDTH='192' HEIGHT='190' CLASSID='CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95' STANDBY='Loading Windows Media Player components...' TYPE='application/x-oleobject'> 
    <PARAM NAME='FileName' VALUE='" + FileName + "'> 
    ... 
    </OBJECT>';"; 
Page.Controls.Add(myObject); 
Questions connexes