【问题标题】:ASP.NET Rich UI - What do you use? [closed]ASP.NET 丰富的 UI - 你用什么? [关闭]
【发布时间】:2009-11-09 10:39:55
【问题描述】:

我正在寻找其他人在他们的 ASP.NET 项目中使用什么来提供丰富的用户界面体验,同时尽可能保持生产力的反馈。

我正在开发一个基于 ASP.NET 3.5 Web 的应用程序,但是我希望使这个项目中的 UI 尽可能丰富,例如

  • 最小化回发和整页刷新

  • 在适当的情况下使用 AJAX

  • 能够将自己的主题/皮肤应用到任何第三方组件。

我非常擅长 CSS/Javascript,我越来越精通 Jquery,并且对 ASP.NET 有相当的了解。然而,就 Xhtml 和客户端技术而言,我必须意识到并不是每个从事未来项目的人都会像 Xhtml/CSS/Script 方面那样精通。因此,另一个关键要求是

  • 如果可能,请在 Visual Studio 中为上述内容获得良好的设计时支持

目前我正在研究沼泽标准搜索和编辑类型屏幕,例如搜索一些数据并向下钻取和编辑。使用不带 AJAX 的开箱即用 ListView/GridView 不是一种选择,因为用户体验太差了。

但在我认为的三个不同选项之间挣扎。

  1. 使用开箱即用的控件 ASP.NET 控件,但使用更新面板来最大程度地减少回发。我不确定这一点,因为我已经阅读过更新面板效率不高(例如,如果您有一个网格并将其编辑更多,则所有网格标记都将再次从服务器获取。)
  2. 放弃 ASP.NET 控件并使用第三方网格,例如 Developer express 网格。我玩过这些,喜欢其中的搜索和分组部分,但在编辑方面我不太确定。
  3. 想出一个我自己的狡猾计划。我正在考虑一个返回 JSON 等的 Web 服务。这对我很有吸引力,但如果我走这条路,我需要说服我的老板这可能是有成效的,并尽可能多地与现有的东西联系起来。例如,我简要介绍了 ADO.NET 数据服务。

无论如何,正如我所说,这个问题的目的是尝试了解其他人在他们的 ASP.NET 项目中使用什么来提供丰富的用户界面体验,同时仍然尽可能保持生产力。

【问题讨论】:

    标签: asp.net jquery asp.net-ajax


    【解决方案1】:

    对于网格,您可以使用DataTables。它具有多列过滤和排序、基于行的事件、分页,并且可以使用 DOM 或通过 Ajax 调用接受数据。

    如果您正在寻找 jQuery 和回发周期的良好资源,您应该阅读 Dave Ward 的 blog。他介绍了有关 PageMethods 和 Web 服务的不同技术。

    您还对 mirco-templates 感兴趣,您可以在其中使用诸如 jTemplates 之类的模板语言来处理对 DOM 的客户端更新。使用这种技术可以减少您对 ViewState 和回发的依赖。

    最后,有一个不错的插件,叫做 SimplyModal,它可以让你创建模态对话框。这是一个good 示例。

    【讨论】:

      【解决方案2】:

      我们结合使用更新面板和原始 ajax。

      如您所说,更新面板效率不高,但在需要刷新大部分屏幕时它们很好用。

      对于 javascript/ajax,我们主要使用 jQuery(非常棒),并使用 MS Asp.Net Ajax 与 Web 服务器上的 Web 服务进行通信。 Web 服务通常会返回我们自己的带有 [DataContract(Namespace = "")] 标记的自定义 ServiceResult 对象以及带有 [DataMember] 标记的属性。当这些对象在 js 端收到时,它们就是 js 对象。其中一个道具是数据容器,它是一个 json 序列化对象,可以在 js 端使用

      进行反序列化
      Sys.Serialization.JavaScriptSerializer.deserialize(resultObject.ResultString)
      

      【讨论】:

        【解决方案3】:

        你有预算吗?我们在我的雇主处使用 Telerik AJAX 组件,并且对功能和性能非常满意。

        【讨论】:

          猜你喜欢
          • 2023-04-08
          • 2011-12-02
          • 2015-03-15
          • 2011-05-06
          • 1970-01-01
          • 2021-09-06
          • 1970-01-01
          • 2010-10-26
          • 2010-09-05
          相关资源
          最近更新 更多