如何在ASP.NET页面中嵌入WINFORM控件二

原文:刘武|如何在ASP.NET页面中嵌入WINFORM控件二

上一篇介绍了在ASP.NET页面中嵌入WINFORM控件的基本方法,本篇会举个稍微复杂的例子来说明如何在页面中调用WINFORM控件的属性和方法。

一 新建项目 Liuw.Net.WindowsControlLibrary,并添加WINDOWS用户控件 MyControl1

二 给控件 MyControl1 添加属性和方法:

namespace Liuw.Net.WindowsControlLibrary
{
    public partial class MyControl1 : UserControl
    {
        public MyControl1()
        {
            InitializeComponent();
        }
        private string _userName = "";
        public string UserName
        {
            set { _userName = value; }
            get { return _userName; }
        }
        public void SayHello()
        {
            MessageBox.Show("Welcome To Liuwu.net," + _userName);
        }
    }
}

该控件包含一个UserName属性及SayHello方法,当调用方法的时候,则弹出对话框。

三 编译项目,并拷贝dll文件到网站目录

四 添加页面SayHello.aspx

<script type="text/javascript">
function SayHello()
{
    var obj = document.getElementById("ctl");
    var input = document.getElementById("inputName");
    obj.UserName = input.value;
    obj.SayHello();      
}
</script>
Name:<input type="text" id="inputName" /><br />
<input type="button" value="SayHello" onclick="SayHello()" />
<object id="ctl"   classid="Liuw.Net.WindowsControlLibrary.dll# Liuw.Net.WindowsControlLibrary.MyControl1"></object>

不难看出,用JS脚本就可以完成属性和方法的调用,不过此时运行页面,可能会出现脚本错误,提示 “对象不支持该属性或方法”。那是因为我们在编译用户控件时少了一个步骤:

五 右击项目Liuw.Net.WindowsControlLibrary,并选择属性,选择“应用程序”选项卡,点击"程序集信息",勾中“使程序集COM可见”,

重新编译,并替换网站目录下的文件:

现在我们就可以正常访问了,但是还有个限制,只有本地网络或将访问的网站添加到信任站点才可以。是不是很麻烦,的确,他就是这麽麻烦,甚至笔者在 VS2005环境下直接浏览也会提示脚本错误,必须建立虚拟目录,或者发布后才能使用。还有个方法就是配置.NET的程序集权限,这个会在以后的章节单独 讨论。

前篇:

如何在ASP.NET页面中嵌入WINFORM控件一

你可能感兴趣的:(asp.net)