我喜欢构建一个组件集合项目,以便稍后可以在其他项目中使用这些组件。例如,我创建了一个名为MyDataGrid.ascx的UserControl
所以假设项目布局是这样的:
- > IPGostarProject - 在IPGostar的名称空间下 - 包含组件和 很多用户控件
- > SampleProject - 这里我想使用MyDataGrid.ascx UserControl IPGostar名称空间。
但是你知道LoadControl函数只接受虚拟目录作为它的参数。所以你不能加载SampleProject目录之外的任何东西!
那我怎么能这样做呢?
答案 0 :(得分:0)
一种方法是使用SampleProject项目的后期构建事件(或您使用的任何构建脚本)将实际用户控件复制到SampleProject的子文件夹中,以便在运行时可以访问它们。
答案 1 :(得分:0)
只要您处理部分类,在文件系统欺骗之外没有很好的方法可以做到这一点。更好的方法是将共享UserControl实现为WebControls。如果你有广泛的标记,它可能不太适合作为共享控件,无论如何......例如你还会分享样式表吗?
分离出大部分标记,它不是控件核心功能的一部分,只将核心实现为WebControl,在代码中生成任何标记和控件。实现它的实际项目应该负责布局,格式化等。使用事件为客户端提供钩子(例如,对于数据网格,CreateRow,CreateCell等事件)