【问题标题】:Critique this strategy批评这个策略
【发布时间】:2010-08-26 19:55:46
【问题描述】:

我想使用 jQuery 和 AJAX 填充一个网格视图。从我的调用页面,jQuery 将调用一个处理程序 (.ashx),该处理程序将为 gridview 提供 XML 数据或 HTML 标记。正如我所看到的,我有两个选择:1)交付 XML,然后将其绑定到调用页面上的设计时 gridview,或者 2)为 gridview 交付 HTML。我的第一个问题是:哪种方法最简单?

现在有两个因素使事情复杂化。首先,gridview 必须在所有列上都是可排序的。其次,数据将被用户配置选项过滤(某些列将被隐藏),这些选项也将存储在数据库中。知道了这一点,你对第一个问题的回答会改变吗?

感谢任何 cmets、见解或陷阱。

杜威

【问题讨论】:

  • 您不使用带有更新面板的 ASP.Net Ajax 围绕您的 gridview 有什么原因吗?对我来说似乎是最简单的方法......

标签: asp.net jquery ajax gridview


【解决方案1】:

我在最近的一个项目中做了与此非常相似的事情。我将 jqGrid 用于显示目的——它可以很容易地绑定到 JSON 格式的数据(也可能是 XML 格式的数据),并且它支持单击列标题进行排序。我肯定会推荐它的功能和易用性。

我不必实现用户可配置的列显示/隐藏。但是,使用 jqGrid 可以很容易地完成:网格列是在 javascript 中配置的,因此您可以在初始页面构建期间使用代码隐藏逻辑来自定义定义列配置的 javascript。

我绝对不会从 ASHX 类返回 HTML,因为您必须使用 StringBuilder(或类似的东西)手工制作所有 HTML。使代码更难维护;如果你想改变页面布局,你需要重新编译和重新部署你的系统。如果您非常想返回完全格式化的 HTML,我可能会使用 jquery/ajax 来调用一个 .ASPX 页面。这种方法既笨重又笨拙——但至少 .ASPX 与 .ASHX 不同,它适用于生成完整的 HTML。

您可能需要考虑返回 JSON 而不是 XML。它可以通过网络实现更小、更快的响应,并且在 javascript 中非常易于使用。在这种情况下,您应该考虑使用 ASMX 而不是 ASHX 来生成 JSON,因为它可以配置为自动将返回的对象序列化为 JSON。这就是我在我的项目中所做的,它的开发非常快速且容易。

最后,我VASTLY更喜欢 jquery 和 ajax,而不是 Microsoft 的 ajax 和 updatePanels。 This stackoverflow thread 详细说明原因。

【讨论】:

    【解决方案2】:

    我认为交付 HTML 更容易。 但是我选择使用 javascript 呈现函数来传递 XML 以动态排序和过滤数据,例如: 函数渲染(选项){

    }

    options 参数将是一个存储 orderby 参数和隐藏列名称的对象,例如: options = {orderby:"name", hidecolumns:["surname", "age"]};

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-14
      • 2017-06-11
      • 2021-10-30
      相关资源
      最近更新 更多