不可以的除非你的客户端都安装了.Net Framework,即使客户端都安装了,估计也很困难把WinForm的控件嵌入到WebForm中,至少目前没有人尝试过

解决方案 »

  1.   

    那请问project2000上的表格应该用什么方式实现?
      

  2.   

    你可以用WebForm中的DataGrid控件用法和WinForm的类似
      

  3.   

    直接用webform里的datagrid就行了。
    嵌入的做法需要客户端都安装.net Framework,比较麻烦
      

  4.   

    我用过webform上的。但是效果并不好,而且编辑添加时需要为每一行添加编辑添加删除按钮!我希望可以象在winform上一样直接通过鼠标选择取得我所要的项。
    而且最好可以象project一样,当选择一个cell时,会根据内容做出相应的处理。
    例如:选中的是用户名字时,当前的cell自动转换为textBox。而选中的是权限时,当前的cell自动转换为下拉框,到焦点离开时恢复成表格!
      

  5.   

    Web程序没有那么方便的,要做成那样也可以,你的页面会变得很复杂,频繁的刷新会打消任何人使用你的程序的积极性Web程序有Web的做法,非要做成Windows那样是不现实的,至少现在有多方面的因素制约
      

  6.   

    to timmy3310(tim):http://expert.csdn.net/Expert/topic/954/954834.xml?temp=.7317621
     我是看到这篇文章的!我觉得如果可以实现,可以带来很高的扩展性!但是实现时就象前面说的一样,有一些不明白的地方!主要的问题就是不知道如何引用,也不知道指向控件库的路径和控件的完全限定名怎么填写!
      

  7.   

    选中的是用户名字时,当前的cell自动转换为textBox。而选中的是权限时,当前的cell自动转换为下拉框,到焦点离开时恢复成表格!
    用WebForm中的DataGrid控件的模版列可以作到
      

  8.   

    模板列确实可以做到。但是必须先点一下编辑按钮,将当前行转为编辑状态。
    我的目的就是希望可以做到只将选中的Cell转为编辑状态。
      

  9.   

    To Zoujinyucn(不会游泳的鱼)就目前来说,这种技术用处不大,Web上的客户端有几个能装上.Net Framework?
      

  10.   

    下面的文字描述了如何在IE浏览器中执行Windows Forms控件。你看看吧,不知道有没有帮助。在IE中激活Windows Forms控件可以分四步来完成,下面所列的是详细的步骤: 
    * 创建Windows Forms控件; 
    * 创建一个包含对象标签的HTML文档; 
    * 创建虚拟目录,复制并设置权限; 
    * 运行该控件。 
    1. Windows Forms控件:SimpleControl.dll 
    几乎所有的Windows Forms控件都可以用,但在这个例子里,我们使用的是包含在.NET Framework SDK QuickStart Tutorial Creating Controls中的SimpleControl控件。 
    2. HTML文档: SimpleControl.html 
    接下来一步是生成内有一个对象tag的HTML文档,以激活Windows Forms控件。此外,还要加入一些脚本和输入tag(input tags)到该控件的示范程序入口。 
    <object id="simpleControl1" classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl" height="300" width="300"> <param name="Text" value="Simple Control"> </object> 对象tag: classid包含两个有趣的部分:导向控件库的路径和全名(fully qualified name),中间用“#”隔开。如果您熟悉ActiveX对象tag的话,您会发现我们没有使用GUID。在Windows 表单中,路径和全名(fully qualified name)合并在一起的整体被用来当作唯一的识别符。 
    参数tag被用来设置控件的属性:“name”参数是属性名,而“value”参数则是属性的值。 脚本: 
    <script> function ChangeText() { simpleControl1.Text = text1.value; simpleControl1.Invalidate(); } 
    </script> <input type="text" id="text1"> <input type="button" value="Change Text" onclick="ChangeText()"> 
    您可以写一个脚本来获得控件的程序入口,页面上的按钮和文本框已关联到一个简单的函数ChangeText,以设置该控件的text属性。为了是修改的结果体现出来,控件必须重绘(调用invalidated()实现)。 
    完整代码 
    下面是这个例子完整的HTML代码: 
    <script> <html> <script> function ChangeText() { 
    simpleControl1.Text = text1.value; 
    simpleControl1.Invalidate(); 
    } </script> <body> <p>Simple Control</p> 
    <br> 
    <br> <object id="simpleControl1" 
    classid="http:SimpleControl.dll#Microsoft.Samples.WinForms.Cs.SimpleControl.SimpleControl" 
    height="300" 
    width="300"> 
    <param name="Text" value="Simple Control"> 
    </object> <br> 
    <br> <input type="text" id="text1"> 
    <input type="button" value="Change Text" onclick="ChangeText()"> </body> </html> 3. 虚拟目录: 
    创建一个新的虚拟目录,并将控件(SimpleControl.dll)和HTML文档(SimpleControl.html)放到这个目录里。 
    重要:将该虚拟目录的执行权限设置为“脚本”,如果将执行权限设置为“脚本& 执行”的话,控件将不能正常激活。 
    4. 运行控件: 
    用IE浏览器里指明虚拟目录和SimpleControl.html文件,即运行该控件。如果控件没有被正常激活,则可能需要重启一下IE或清空assembly下载缓存(assembly download cache)。 
    注意: 注册了assembly缓存查看器(assembly cache viewer)后,您就可以查看您的assembly下载缓存(assembly download cache)的内容了,注册的方法为,到包含了.Net Framework runtime的目录(通常为%windir%\Microsoft.NET\Framework\v1.0.2204)下并运行“regsvr32 shfusion.dll”。现在用资源管理器打开缓存目录(一般为%windir%\ Assembly),便可以看到缓存的内容了。 
    要将控件从assembly下载缓存(assembly download cache)中清除,在查看器(viewer)中右键单击相应控件,在打开的菜单里选“删除”。(这个方法如果不行的话,请小心的将SimpleControl*.dll文件从你的缓存目录(通常为%windir%\Assembly)