Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP.NET 2.0 - Dynamically create ActiveX object using HtmlGenericControl and call methods / functions all from code behind

Reply
Thread Tools

ASP.NET 2.0 - Dynamically create ActiveX object using HtmlGenericControl and call methods / functions all from code behind

 
 
qualitynice@hotmail.com
Guest
Posts: n/a
 
      11-03-2005
HELP ... I'm creating an embedded activex object in an asp.net page
using the HtmlGenericControl class. I'm doing this because when I
tried to embed it directly in the aspx page, it stopped working once I
changed it to run on the server (runat="server"). It said the GUID was
wrong. I found code showing how to implement an activex control using
the HtmlGenericControl class from the code behind file, but I can't
figure out how to call functions or methods on it. Any help would be
greatly appreciated.

 
Reply With Quote
 
 
 
 
xhead
Guest
Posts: n/a
 
      11-03-2005
Is the ActiveX object you are calling actually a control? If it is, you
need to use the client-side object scripting model to call it's
functions and methods from within the browser. I don't have much
experience with that, because I try to stay away from client-side
scripting (its yucky to write and debug).

If it is just an ActiveX COM object, then to use it on the server side,
you create a Project Reference to that component in your web project,
and then you can instantiate it in your server-side code like this:

Dim myObject as New CustomActiveXComponent
myObject.DoSomething()

If it is referenced correctly, it should show up in Intellisense when
you declare the object, and when you hit the period, you should see the
methods and properties of the class.

Mike

http://www.velocityreviews.com/forums/(E-Mail Removed) wrote:
> HELP ... I'm creating an embedded activex object in an asp.net page
> using the HtmlGenericControl class. I'm doing this because when I
> tried to embed it directly in the aspx page, it stopped working once I
> changed it to run on the server (runat="server"). It said the GUID was
> wrong. I found code showing how to implement an activex control using
> the HtmlGenericControl class from the code behind file, but I can't
> figure out how to call functions or methods on it. Any help would be
> greatly appreciated.


 
Reply With Quote
 
 
 
 
qualitynice@hotmail.com
Guest
Posts: n/a
 
      11-03-2005
Thanks for the reply...

I'm trying to use client-side scripting now, but can't seem to get my
function to recognize the dynamically created object. The script error
I keep getting is "object required". It is however an ActiveX COM
object, but when I create an instance of it, I can't figure out how to
then place it into the webpage. It works fine with windows forms
because when I add a reference to it, it automatically creates the
wrapper and places it into the tool box. In asp, it creates the
wrapper, but won't add it to the tool box for a nice and easy drag and
drop. Thanks again Mike for the reply.

Mike.

 
Reply With Quote
 
Bruce Barker
Guest
Posts: n/a
 
      11-03-2005
if use put a runat=server on an <object> tag, asp.net assumes you are
creating a server side active/x control by guid, not rendering an client
side object tag. it simular to putting a runat=server on <script>. so your
approach is correct.

to access the control from client side (assumming the control is marked safe
for scripting and the browser's security level allows active/x controls),
you need an id tag on the object. because you are using a serverside
control, it generates the id. (view source to see it).

now in browser active/x controls are loaded async, and have a readyState
property that the client script checks to see if its ready. at page load
time, the object should be defined (but may not be ready). so try:

var obj = document.getElementById('name');
if (obj && obj.readyState == 4)
{
// can talk to the object
}


-- bruce (sqlwork.com)




<(E-Mail Removed)> wrote in message
news:(E-Mail Removed) oups.com...
> HELP ... I'm creating an embedded activex object in an asp.net page
> using the HtmlGenericControl class. I'm doing this because when I
> tried to embed it directly in the aspx page, it stopped working once I
> changed it to run on the server (runat="server"). It said the GUID was
> wrong. I found code showing how to implement an activex control using
> the HtmlGenericControl class from the code behind file, but I can't
> figure out how to call functions or methods on it. Any help would be
> greatly appreciated.
>



 
Reply With Quote
 
qualitynice@hotmail.com
Guest
Posts: n/a
 
      11-04-2005
I finally got the client side script to work. What is strange is how
all of my controls are set to runat="server". I have a button, a text
box, and an activex component all running with the runat="server" tag,
but when I run them remotely, the app behaves as if they are all
running on the local client. It is strange that if I take this code
and just define everything in the aspx page instead of going about from
code behind, I get the guid error. If I take the wrapped activex
control and define it in code behind, I can't seem to figure out how to
add it to the webpage. In a windows form, I just drag and drop the
object onto the form.

{
HtmlInputText rdpText = new HtmlInputText();
rdpText.Attributes.Add("type", "text");
rdpText.Attributes.Add("id", "text1");
//rdpText.Attributes.Add("value", "text");
rdpText.Attributes["runat"] = "server";
Page.Controls.Add(rdpText);

HtmlInputButton rdpButton = new HtmlInputButton();
rdpButton.Attributes.Add("type", "button");
rdpButton.Attributes.Add("id", "button1");
rdpButton.Attributes.Add("name", "button1");
rdpButton.Attributes.Add("value", "Connect");
rdpButton.Attributes["runat"] = "server";
rdpButton.Attributes.Add("onclick", "return
Button1_onclick()");
Page.Controls.Add(rdpButton);

HtmlGenericControl rdp = new HtmlGenericControl("object");
rdp.Attributes["id"] = "rdp";
rdp.Attributes["name"] = "rdp";
rdp.Attributes.Add("classid",
"clsid:7584c670-2274-4efb-b00b-d6aaba6d3850");
rdp.Attributes["runat"] = "server";
rdp.Attributes["width"] = "1034";
rdp.Attributes["height"] = "778";
Page.Controls.Add(rdp);

HtmlGenericControl rdpFunctions = new
HtmlGenericControl("script");
rdpFunctions.Attributes.Add("type", "text/javascript");
rdpFunctions.Attributes.Add("language", "javascript");
rdpFunctions.Attributes["runat"] = "server";

string rdpConnect = "function Button1_onclick()" +
"{" +
"rdp.Width=1034;" +
"rdp.Height=778;" +
"rdp.DesktopWidth=1024;" +
"rdp.DesktopHeight=768;" +
"rdp.Server=text1.value;" +
"rdp.Connect();" +
"}";

string rdpDisconnect = " function disconnect()" +
"{" +
"rdp.Disconnect();" +
"}";

rdpFunctions.InnerHtml = rdpConnect;
rdpFunctions.InnerHtml = rdpFunctions.InnerHtml +
rdpDisconnect;
Page.Controls.Add(rdpFunctions);

 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
how to create file upload using activeX object using javascript balakrishnan.dinesh@gmail.com Javascript 0 04-13-2007 06:14 AM
<object> as server side HtmlGenericControl Martin Eyles ASP .Net 2 09-04-2006 04:20 PM
ActiveX apologetic Larry Seltzer... "Sun paid for malicious ActiveX code, and Firefox is bad, bad bad baad. please use ActiveX, it's secure and nice!" (ok, the last part is irony on my part) fernando.cassia@gmail.com Java 0 04-16-2005 10:05 PM
How to call code in aspx webform from functions defined in code behind modules CW ASP .Net 3 05-02-2004 02:20 PM
how to dynamically create a function object (from a code object)? Petri Savolainen Python 0 07-01-2003 10:43 PM



Advertisments