views:

46

answers:

4

I have an ASP.NET site which uses a 3rd party activeX control. I have to pass a few parameters to the OBJECT tag in the HTML page. If i hardcode these parameters into the HTML everything works.

I would like to place the parameters in my web.config with app settings "key/value" pairs.

My problem is i cannot read the app key setting in the HTML markup to succesfully pass them in as parameters. I can read them fine from server side code behind.

What's the correct way to read these settings in the client side HTML markup ?

Thanks

A: 

I suggest you generate your OBJECT tag dynamically at run-time from the server. This way you can inject whatever parameters you read from the web.config file.

CesarGon
+1  A: 

You can use the ConfigurationManager in you ASPX page. Then you can add in your OBJECT tag parameters:

Web.Config

</configuration>
    <appSettings>
        <add key="Setting" value="Value"/>
    <appSettings>
</configuration>

ASPX

<object>
    <param name="Setting" value="<%= System.Configuration.ConfigurationManager.AppSettings["Setting"] %>" />
</object>
Dustin Laine
A: 

You have a few options. If you add the runat="server" attribute to your object tag, you can access it from your codebehind using its ID, and add attributes that way:

myObjectID.Attributes.Add("attrName", "value")

If you don't want to do that, you could use inline literals:

<object id="myObjectID attr="<%= ConfigurationManager.AppSettings("MyAttribute") %>" ...>

Either way should get the job done.

Ender
+1  A: 

In addition to using <%=ConfigurationManager.AppSettings("MyAttribute")%>, as others have noted, you can also use expression builders. The syntax is a little different. Instead of <%=...%> you use <%$ AppSettings: MyAttribute %>, like so:

<object id="myObjectID attr="<%$ AppSettings: MyAttribute %>" ...>

If you are just dumping an appSettings value directly into static HTML (as I presume you are in this example), these two approaches are identical for all practical purposes.

What is nice about expression builders, though, is that you can use them to declaratively assign appSettings values to Web control properties, something you cannot do with the <%=...%> syntax. That is, with expression builders you can do something like:

<asp:Label runat="server" ... Text="<%$ AppSettings: MyAttribute %>" />

Whereas you could not do:

<asp:Label runat="server" ... Text="<%=ConfigurationManager.AppSettings("MyAttribute")%>" />
Scott Mitchell