更具体地说,在Visual Studio 2008中,与VS2005不同,我需要了解什么?我在VS2005中找到了相当多的引用来做这种事情,比如
但即便是微软的参考资料似乎也没有多说VS2008。 这个问题源于我之前提到的found here。
更进一步,一旦我设法构建其中一个程序集(可能是一个DLL),其他人需要对我的DLL做什么才能包含它(作为单个页面,或者可能是子部分)他们的ASP.NET网站?
编辑:更多的搜索已经出现this,这看起来很多(但不完全)就像我想要弄清楚的那样。之一:
我希望这能澄清我的要求。
答案 0 :(得分:1)
我终于想出了如何做到我需要的东西。它的布局非常好here(尽管那篇文章声称适用于VS2005),但最后归结为几件事:
我之前遇到的最大问题是我在ASP.NET Web应用程序而不是Web站点中构建用户控件。我花了这么多时间来反对这一点,希望这个答案至少可以挽救其他一个新的ASP.NET开发人员节省时间和细微差别的时间。干杯!
答案 1 :(得分:0)
使用UserControl所需要做的就是在项目中添加对.dll的引用,无论是Web应用程序还是Web站点。
通常最好的想法是将其添加到相对于项目的文件夹中(我通常使用“_Libraries”),因为您需要将其部署到最终目的地。
修改强>:
我想也许我误解了这个问题。 ASCX文件不易移植,因为UI布局包含在标记中,而不是代码中。
如果您希望用户控件是可分发的,则应通过在生命周期中将组件添加到usercontrol的Controls()集合(通常为Init()或CreateChildControls())来构建完全在代码中的布局。 ,或通过重写Render()方法。
然后,任何人都可以使用<@Register TagPrefix="mycontrols" namespace="My.UserControls" Assembly="My.UserControls" />
指令添加一个用户控件,并使用<% mycontrols:mydropdownlist %>
asp标记将其放入页面中。
答案 2 :(得分:0)
这看起来似乎是一个愚蠢的问题,但除了漂亮的设计时间界面之外,您将此作为用户控件获得了哪些好处,而不是(虽然更为复杂)编写server control的方法,这会给你你在这里要求的确切内容 - 一种部署控件的简单方法吗?
假设基于CSS的方法来显示控件,创建实际控件非常简单,使用面板作为容器(渲染为div),标签,文字等。
有些事情需要在控制生命周期的正确位置设置 - 例如您需要将标签的AssociatedControlId设置为输入控件的ClientID,但这不是在CreateChildControls中设置的,您需要稍后再设置它。