我想使用jQuery和AJAX填充gridview。在我的调用页面中,jQuery将调用一个处理程序(.ashx),它将为gridview提供XML数据或HTML标记。在我看来,我有两个选择:1)提供XML然后绑定到调用页面上的设计时gridview,或者2)为gridview提供HTML。我的第一个问题是:哪种方法最简单?
现在有两个因素使事情复杂化。首先,gridview必须可以在所有列上进行排序。其次,数据将被用户配置选项过滤(某些列将被隐藏),用户配置选项也将存储在数据库中。知道这一点,你对第一个问题的答案是否会改变?
任何评论,见解或陷阱都会受到赞赏。
杜威
答案 0 :(得分:0)
我认为提供HTML更容易。 但我选择通过使用javascript呈现函数来提供XML来动态排序和过滤数据,如: function render(options){
}
options参数将是一个存储orderby参数和隐藏列名的对象,例如: options = {orderby:“name”,hidecolumns:[“surname”,“age”]};
我希望有所帮助。
答案 1 :(得分:0)
我在最近的一个项目上做了类似的事情。我使用jqGrid进行显示 - 它可以很容易地绑定到JSON格式的数据(也可能是XML格式的数据),并且它支持click-column-header-to-sort。我肯定会推荐它的功能性和易用性。
我没有必要实现用户可配置的列显示/隐藏。但是,它可以很容易地用jqGrid完成:网格列是用javascript配置的,所以你可以在初始页面构建期间使用代码隐藏逻辑来自定义定义列配置的javascript。
我绝对不会从ASHX类返回HTML,因为您必须使用StringBuilder(或类似的东西)手工制作所有HTML。使代码更难维护;如果您想更改页面布局,则需要重新编译并重新部署系统。如果你迫切想要返回完全格式化的HTML,我可能会使用jquery / ajax来调用.ASPX页面。这种方法很笨重而且很苛刻 - 但至少.ASPX适用于生成完整的HTML,与.ASHX不同。
您可能需要考虑返回JSON而不是XML。它通过网络实现更小,更快的响应,并且在javascript中非常容易使用。在这种情况下,您应该考虑使用ASMX而不是ASHX来生成JSON,因为它可以配置为自动将返回的对象序列化为JSON。这就是我在项目中所做的,而且开发速度非常快且容易。
最后,我 VASTLY 更喜欢jquery和ajax到Microsoft的ajax和updatePanels。 This stackoverflow thread详细说明原因。