2 Stimmen

Objekt-Tags in asp.net verwenden

Ich habe diesen HTML-Code zum Einbetten eines Videos in eine Aspx-Seite:

    <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>

Die Sache ist, ich möchte seine Parameter von meinem C#-Code-Behind (z.B. den Pfad zu der Datei, die abgespielt werden) festgelegt.

Ich weiß, ich sollte hinzufügen runat="server" aber das ist nicht das Einzige. Der Code-Behind erkennt kein Element vom Typ MediaPlayer, egal was. (Ich versuche, es von meinem Page_Load(..) )

Wie soll ich das machen?

10x

2voto

Josh Yeager Punkte 3674

Es gibt kein ASP.NET-Steuerelement für den OBJECT-Tag, so dass Sie dessen HTML selbst generieren müssen. Es gibt zwei einfache Möglichkeiten, dies zu tun. Die erste Möglichkeit ist die Verwendung von <% %>-Tags in Ihrer ASPX-Datei, etwa so:

<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>

Die andere Möglichkeit besteht darin, ein LiteralControl in Ihrem Codebehind zu erstellen und dessen HTML-Code nach Belieben zu ändern:

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);

2voto

Jan Jongboom Punkte 25470

Erstellen einer HtmlGenericControl . Sie können die Attribute über die Funktion Attributes Eigenschaft über Ihr Codebehind. Und fügen Sie die Unterelemente über 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);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X