仅使用HTML和Jquery创建自定义控件

时间:2011-04-05 11:12:29

标签: asp.net custom-controls

我有一个仅使用HTML和Jquery创建的树视图。

我想知道我可以使用HTML和jquery创建自定义控件以使其可重复使用。如果是,那么有人可以就如何实现这个目标提出一些建议

提前致谢

1 个答案:

答案 0 :(得分:0)

为了使其可以作为ASP.NET控件重用,它还必须是命名容器安全,如果您想确保它可以安全地丢弃到任何地方,或者在页面上多次使用。这意味着您需要确保向脚本传递对控件标记的根的唯一ID的引用(例如ClientID),并且任何其他引用都与此相关。

但通常,您可以通过多种方式自定义控件。如果它没有控件,那么您可以将所有资源(HTML和脚本)包含为embedded resources。控件可以在最简单的级别通过Render方法将自己的嵌入资源流传输到客户端。

要处理脚本,您可以类似地使用ScriptManager将自己的嵌入式javascript注册为客户端脚本块。但这并不理想,因为您的脚本将始终包含在块中,因此客户端可能无法很好地缓存它们。

更好的方法是使用WebResource.axd. Here is an article来提供嵌入式资源,解释如何执行此操作。

就我个人而言,我发现WebResource和嵌入资源是一个巨大的痛苦。您需要让AssemblyInfo.cs与资源以及程序集名称和版本保持同步。命名空间约定似乎总是难以正确。我发现简单地公开自定义控件的静态方法更容易,例如:

public static Stream GetEmbeddedResource(someResourceIdentifier, out string mimeType) {
  /// return a stream of my own embedded resource ... can be used for anything
  /// css, js, html
}

然后只需创建自己的Web处理程序以用作资源加载器并流式传输内容。这样会更容易,而且您最终还不会使用包含200个字符长查询字符串的WebResource.axd包含。