如何在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的程序集权限,这个会在以后的章节单独 讨论。
前篇: