你能肯定你说的是UserControl吗?明确地说UserControl不支持拖放。要支持拖放功能,你必须把你的控件做成Custom Control。
UserControl仅仅是一个Pagelet
下面是你的问题的解决步骤:
1、创建一个Web Control Library项目
2、在类中实现你在UserControl中实现的功能
3、编译,将生成的DLL文件复制到要使用它的那个项目的Bin目录下
(如果你要每个项目都可以使用这个控件,你必须在.NET中把它注册成全局控件,具体的做法查看帮助文档)4、右键点击Web项目的工具栏,选定制工具框(Customize Toolbox...)
5、在对话框选Browser,找到刚才那个DLL文件
6、在工程项目添加这个DLL的引用,做法类似步骤5
7、你可以拖放了:)
UserControl仅仅是一个Pagelet
下面是你的问题的解决步骤:
1、创建一个Web Control Library项目
2、在类中实现你在UserControl中实现的功能
3、编译,将生成的DLL文件复制到要使用它的那个项目的Bin目录下
(如果你要每个项目都可以使用这个控件,你必须在.NET中把它注册成全局控件,具体的做法查看帮助文档)4、右键点击Web项目的工具栏,选定制工具框(Customize Toolbox...)
5、在对话框选Browser,找到刚才那个DLL文件
6、在工程项目添加这个DLL的引用,做法类似步骤5
7、你可以拖放了:)
大家熟悉的windows forms control,主要是把代码封装在对象、方法中,当调用时,程序就执行相应的代码而web control
不但封装了逻辑上的代码,还要有动态生成html代码的功能,以便能把数据以及界面的html代码传给browser。比如查询到了10个结果,就得用循环WriteLine出相应的html代码,至于什么样的,什么颜色,那就是你的代码的功能了。很像ASP,应该不局限于html代码,javascript、vbscript...凡是浏览器能解析的都可以。所以,从windows forms control转成web control,不是那么容易的,还要看你的html造诣如何了,:)(至少我很怕web的东西).net还有
首先谢谢各位的参与和回答!
好象 niwalker() 的方法不太能行,因为我的UserControl中使用了System.windows.form下的控件,而 Web下的所有项目(如Web Control Library)或类中好象根本就不能使用(Using)System.windows.form中的类(控件) icyer()说的“ 工具箱中的控件都是System.Web下的,而你写的控件则是System.Windows下的” 我觉得也好象是,但我想应该也有其他方法可以达到的吧! jhnhu(jhnhu) 说的和html的关系我觉得也很有道理的,在IE中使用的界面,最终最该还是要翻译成Html的。至于的你说的DLL的方法,我还没有Try,我不要求写文件,但要求能传入一个参数!
我的确是想把一个windows Form的控件直接加入到ToolBox中然后能拖放到webForm上使用的。在Delphi中有一中叫activeForm的东西,它其实也是Active的一种形式——它是一个普通的Window Form,所以设计的时候,能在其上面放任何可视和不可视的控件到上面,但最后它这个的 编译后能生成一个OCX控件,这个就能加入到.Net Web Application的ToolBox中使用…… 基于此,我想.NeT 中是否有相关的技术实现类似的功能?(本来发现比Delhi好得多的一点就是.NET的UserControl能让用户方便的定制自己需要的控件,但在Active Form方面,难道没有想关的技术吗? 毕竟,window Form 的控件要比WebForm的控件丰富得多了!
另外 jhnhu(jhnhu) 的DLL调用方法想想也是不行的:基于IE的用户,不能要求他们都装上.Net .net framework的
自己定义的UserControls(例如为:WebWorkFlow,所在namespace为:WebPubControls ),生成Dll后,在Refrence中Add后,在WebForm的代码编写环境中编写时,已经能看到WebPubControls 、WebWorkFlow等对象及其WebWorkFlow的Public属性方法了,但是编译的时候是没办法通过的,因为UserControl 继承自System.Windows.Form.UserCOntrol中,而web项目中不允许Using System.Windows.Form这个NameSpace的,所以没办法通过! 我试着用tlbEpx和regasm来生成一个COM,也是不行的(使用命令行组册时不会出错,但加入到ToolBox的COM中时提示:It was Not Recoginized as a COM Server )。当然我在UserControl中已经加入了ClassInterface(ClassInterfaceType.AutoDual )] 有什么办法可以实现我的要求吗?
http://www.aspnetmenu.com/home.aspx
还有一个网址是关于Grid控件:http://www.dbnetgrid.com/dbnetgrid/demos.aspx