在Repeater中的jQuery

时间:2009-08-18 15:28:14

标签: c# jquery dynamic-data

我是jQuery世界的新手,可能会在这里提出一个相当微不足道的问题。我很好奇社区认为什么是具有jQuery功能的数据绑定对象的最佳实践。

作为一个具体的例子,我目前创建了一个绑定到对象列表的转发器。每个对象都具有诸如“链接”,“缩略图”,“子文本”等属性。这是一个小型转发器(任何时候都是<10个项目)。当用户点击“链接”时,页面的单独区域会更新以反映该对象。

到目前为止,我发现的方法包括:

  • 从C#codebehind
  • 动态创建必要的jQuery脚本
  • 创建一个JSON服务以响应链接请求并返回要加载的对象(额外的可能不必要的数据库命中)
  • 在C#代码隐藏(similar struct
  • 中动态创建JS Struct

我想在此场景中避免使用JSON服务的主要原因是,从数据源返回后,对象已经绑定了一次。我不确定是否有必要再使用db命令,但我对所有建议都持开放态度。

2 个答案:

答案 0 :(得分:1)

从C#代码隐藏动态创建必要的jQuery脚本可能是必要的,因为JQuery代码不必更改。请记住,不引人注目的JS就是jQuery的主要内容。

我认为单件JS看起来像这样:

$('.link-class', '#repeater-id').click(function(){
  // Get the id of the link or the target using $(this).attr('id')
  // Show a page section or call a service using the the discovered ID.
});

您可以使用第一条注释来提取识别您希望显示的数据所需的数据。

第二条评论可以是Ajax调用,也可以是页面上某些其他部分的div切换。如果这个数据很大,那我就倾向于使用Ajax。否则我会把它保留在页面上,然后打开或关闭它。

如果您认为用户更倾向于点击几个链接,那么即使页面稍微重一点,我也会更加有利于非ajax选项。特别是如果用户可能返回之前点击的链接。

这有意义吗?很高兴进一步阐述......

答案 1 :(得分:0)

我认为此列表包含一些有关某些项目的基本详细信息,当您点击其中一项时,您会看到有关该特定项目的更多数据。

我肯定会选择一个(动态jQuery)或两个(JSON服务),具体取决于呈现页面的大小差异。如果我们在谈论10kb附近的差异,我会选择动态jQuery并准备好所有数据。如果它远远超过使用JSON服务。

额外的数据库请求及其在用户期望时所暗示的延迟没有任何问题。如果有人点击一个网页项目,他们会在任何延迟不到半秒的情况下处于罚款状态,如果您足够好只是说“请等待”以表示明显的延迟是正常。