asp.net - 需要帮助创建自定义控件 Asp.Net 3.5

标签 asp.net custom-controls

我正在寻找有关在 Asp.net 3.5 中创建自定义控件的说明或演练的链接。

我已经看过以下内容:

http://forums.asp.net/t/1385382.aspx : 将 .ascx 用户控件转换为可再发行的自定义控件 asp.net 3.5

http://msdn.microsoft.com/en-us/library/aa479318.aspx : 将 .ascx 用户控件转换为可再发行的自定义控件 asp.net 2.0

我认为上面的两个链接是针对复合自定义控件的,目前还可以,因为看起来制作复合控件比制作完整的自定义控件更容易。

按照上述链接 (aa479318) 中的说明,我创建了一个用户控件 MyControl.ascx 文件并将其发布,该文件被编译成一个自包含的 .dll,名为 App_Web_MyControl.ascx.cdcab7d2。

然后我放一个

<%Register Assembly="App_Web_MyControl.ascx.cdcab7d2" 
              TagPrefix="cc" namespace="TheNamespace" %> 

在我想使用自定义控件的 aspx 文件(在另一个应用程序中)中,我在项目中添加了对 .dll 程序集的引用。

当我尝试通过

在 .aspx 代码中创建它时,无法识别 CustomControl 名称
<cc:MyControl ID="idname" runat="server" />

我收到错误元素“MyControl”不是已知元素。

最佳答案

这已经晚了,我知道,但是这里..

通过执行此操作,我成功地将 .ascx UserControl 转换为可再分发的 dll:

  1. 创建了一个名为 AscxDll
  2. 的 ASP.NET 网站 项目
  3. 在该位置的所述项目中开发了我的 UserControl: ~/App_UserControls/RadioButtonQuestion.ascx
  4. 发布网站项目时仅在“发布网站”对话框中勾选了这些设置:

    使用固定名称和单页程序集

    发出调试信息

  5. 打开 VS cmd 提示符并运行: aspnet_merge "C:\PrecompiledWebOutputDir\AscxDll"-o AssemblyName -r
  6. 将合并的 AssemblyName.dll 复制到另一个需要它的 Web 应用程序/网站项目的 bin 文件夹中。
  7. 在客户端项目的 web.config 中,将其添加到 pages\controls
  8. 在客户端项目中添加了对网页的控制:

请注意它是如何使用 namespace="ASP" 在 web.config 中注册的,以及网页上的标记如何在其中包含一些下划线 这可能是您出错的关键?

这对我来说效果很好,尽管我花了很长时间才弄明白。除非您的 UI 非常复杂,否则仅构建服务器控件或复合控件可能更容易。

希望这对某人有帮助。

关于asp.net - 需要帮助创建自定义控件 Asp.Net 3.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1981925/

相关文章:

html - 网页设计在直接 IE 浏览中工作,但在通过 IIS 查看时失败

c# - 使用 System.Net.Mail 通过谷歌发送 smtp 邮件让我超时异常

c# - 如果为 null,则 Eval() 显示自定义值

uinavigationcontroller - xcode4.2 (storyboard, Navigation Controller) 如何为 UINavigationBar 设置自定义图像

ios - 自定义按钮框架看起来不如 Round Rect UIButton

delphi - 带有 LiveBindings 的自定义网格 - EBindCompError 'No list control editor available'

Asp.net mvc4 布局中带有模型的部分 View

c# - 如何使用 HttpClient 发帖?

android - 使用自定义对话框时无法使用 onDismiss() - Android

custom-controls - UITabBarItem 选定的选项卡背景 : Custom?