代码之家  ›  专栏  ›  技术社区  ›  Dewey

批评这一策略

  •  0
  • Dewey  · 技术社区  · 16 年前

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

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

    感谢您的任何评论、见解或建议。

    杜威

    2 回复  |  直到 16 年前
        1
  •  0
  •   Community Mohan Dere    9 年前

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

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

    我绝对不会从ashx类返回HTML,因为您必须使用StringBuilder手工创建所有HTML(或类似的东西)。使代码更难维护;如果您希望更改页面布局,则需要重新编译和重新部署系统。如果您非常希望返回完全格式化的HTML,我可能会使用jquery/ajax来调用.aspx页面。这种方法既笨拙又笨手笨脚——但至少.aspx面向生成完整的HTML,而不像.ashx。

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

    最后,我 极大地 比起微软的Ajax和更新面板,更喜欢jquery和Ajax。 This stackoverflow thread 详细说明原因。

        2
  •  0
  •   Zafer    16 年前

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

    }

    options参数将是一个对象,用于存储orderby参数和隐藏的列名,例如: 选项=orderby:“name”,hidecolumns:[“surname”,“age”]

    希望有帮助。