Asp.net 构建服务器控件,如ComponentOne或ComponentArt lirbaries

Asp.net 构建服务器控件,如ComponentOne或ComponentArt lirbaries,asp.net,componentart,Asp.net,Componentart,我是一名网络开发专家,了解所有著名的网络框架 我想构建一个服务器控件的集合,比如可以在项目中使用的组件 在ComponentArt中:您可以轻松地在项目中注册ComponentArt的名称空间,并将数据绑定到这些控件,而无需任何额外的代码或工作(如将任何额外的文件复制到示例项目中),当然,它们支持ajax 为了实现这一点,我意识到我必须开发一些高级的用户控件来支持处理ajax的回调,而关于在不同项目之间共享用户控件的信息并不多。实际上,这里是唯一有用的链接: 另一方面,服务器控件没有ascx模板

我是一名网络开发专家,了解所有著名的网络框架

我想构建一个服务器控件的集合,比如可以在项目中使用的组件

在ComponentArt中:您可以轻松地在项目中注册ComponentArt的名称空间,并将数据绑定到这些控件,而无需任何额外的代码或工作(如将任何额外的文件复制到示例项目中),当然,它们支持ajax

为了实现这一点,我意识到我必须开发一些高级的用户控件来支持处理ajax的回调,而关于在不同项目之间共享用户控件的信息并不多。实际上,这里是唯一有用的链接:

另一方面,服务器控件没有ascx模板接口,我可以轻松地设计控件布局

我需要一种方法来开发一些web组件,您可以:

  • 轻松地与其他项目共享(只需将dll添加到项目并启动 (使用它)
  • 支持ajax回调(例如ICallbackEventHandler)
  • 可以有一个用于HTML设计的模板(类似于具有ascx模板的UserControl 因此,您不必在代码中硬编码HTML,如:

    output.Write(“内容”)

  • 自定义服务器控件有前两个,但它们没有ascx文件,因此您必须在cs文件中编写所有html代码


    请建议…

    不要硬编码HTML,您可以让服务器控件从文件中读取HTML,该文件的名称和路径由您根据配置设置或目录路径确定。这将使您的服务器控件更加动态,并且在更改HTML时不需要重新编译。这将有助于满足条件#3,但成本比#1稍低(因为您的服务器控制现在依赖于外部资源,所以不太容易分配)。您可以始终对默认标记进行硬编码,如果找不到该文件,则返回默认标记,以防出现异常。

    您可以让服务器控件从文件中读取该标记,而不是硬编码HTML,该文件的名称和路径由您根据配置设置或目录路径确定。这将使您的服务器控件更加动态,并且在更改HTML时不需要重新编译。这将有助于满足条件#3,但成本比#1稍低(因为您的服务器控制现在依赖于外部资源,所以不太容易分配)。您可以对默认标记进行硬编码,如果找不到该文件,则返回默认标记,以防出现异常。

    要求1和3是相互排斥的。标记必须来自某个地方——编译的资源或外部文件。外部文件可以是可选的,但必须在编译的资源中指定默认标记。编译后的资源不一定必须是您的.cs文件。你可以把它放在一个资源文件中,但我不确定这是否会更容易处理。您也可以将控件构建为现有服务器控件的组合,但这将使模板制作更加困难。

    要求1和3是相互排斥的。标记必须来自某个地方——编译的资源或外部文件。外部文件可以是可选的,但必须在编译的资源中指定默认标记。编译后的资源不一定必须是您的.cs文件。你可以把它放在一个资源文件中,但我不确定这是否会更容易处理。您也可以将控件构建为现有服务器控件的组合,但这将使模板制作变得更加困难。

    您需要开始学习以下书籍:


    利用这本书,我花了很多时间创建了一个多栏的树状视图。可以看出

    你需要开始学习以下书籍:


    利用这本书,我花了很多时间创建了一个多栏的树状视图。可以看到

    I虽然您只能使用LoadControl功能加载控件,但它的参数是一个虚拟目录,仅指示项目本地目录,而没有其他内容,现在您可以使用服务器控件读取模板了吗?您有示例代码吗?LoadControl用于UserControls。我想说的是,不要有输出;您可以有output.write(strvariableoftmlreadfromtextfile);其中,文件路径是通过调用ConfigurationSettings.AppSettings确定的。我猜是这样的:D现在我明白了为什么人们如此讨厌asp.net。我认为您只能使用LoadControl函数加载控件,它的参数是一个虚拟目录,仅指示项目本地目录,而不指示其他内容,现在您可以使用服务器控件读取模板了吗?您有示例代码吗?LoadControl用于UserControls。我想说的是,不要有输出;您可以有output.write(strvariableoftmlreadfromtextfile);文件路径是通过调用ConfigurationSettings.AppSettings确定的。我想就是这样:现在我明白了为什么人们如此讨厌asp.net了。