Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 仅使用HTML和Jquery创建自定义控件_Asp.net_Custom Controls - Fatal编程技术网

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

Asp.net 仅使用HTML和Jquery创建自定义控件,asp.net,custom-controls,Asp.net,Custom Controls,我有一个只使用HTML和Jquery创建的树视图 我想知道我是否可以仅使用HTML和jquery创建一个自定义控件以使其可重用。如果是的话,那么有人能告诉我如何做到这一点吗 提前感谢为了使它可以作为ASP.NET控件重用,如果您想确保它可以安全地放置在任何位置,或者在一个页面上多次使用,它还必须是命名容器安全的。这意味着您需要确保向脚本传递对控件标记根的唯一ID的引用(例如ClientID),并且任何其他引用都与此相关 但通常,可以通过几种方式使自定义控件自包含。如果它没有控件,那么您可以将所有

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

我想知道我是否可以仅使用HTML和jquery创建一个自定义控件以使其可重用。如果是的话,那么有人能告诉我如何做到这一点吗


提前感谢

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

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

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

更好的方法是使用
WebResource.axd.
为嵌入式资源提供服务,这说明了如何做到这一点

就我个人而言,我发现
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
includes。

我想您可以使用常规的asp.net用户控件,在ascx文件中实现所有内容,而在.cs/.vb文件中不做任何操作。用户控件最后通牒呈现为html控件+javascript:)Elad,谢谢回复。我同意您的观点,用户控件是我的一个选择,但我正在探索使其成为自定义控件的方法。如果没有,我将创建用户控件,然后您还可以仅在单独的.js文件中创建控件客户端,并将该.js文件包含在您希望使用控件的任何位置,并将其指定给$(document.ready()中的特定div