使用ajax绑定/重新绑定listview数据源?

时间:2012-03-29 16:12:01

标签: javascript jquery asp.net telerik

是否可以使用Ajax绑定/重新绑定RadListView的数据源?我想要做的是创建一种论坛。一个ListView嵌套在另一个列表视图中。外部列表视图将在页面加载时加载并显示所有主题标题,并且在单击标题之前不会绑定内部列表视图。然后我将使用jQuery打开标题下的详细信息并使用ajax加载THAT ListView。这可能吗?怎么样?还是有另一种方法来实现这种效果?感谢。

2 个答案:

答案 0 :(得分:0)

您可以将外部列表包装在UpdatePanel中,并为主题行分配OnClick处理程序。单击主题行时,将发生异步回发,您可以在单击事件处理程序中绑定内部列表。

您需要以某种方式进入代码隐藏。如果你想使用jQuery,你可以将点击事件附加到标题并在处理程序中调用__doPostBack,如下所示:

$("#<%=ListView1.ClientID%> .header").click(function(){
    __doPostBack($(this).attr("id"), "");
});

如果你采用这种方法,你只需要覆盖代码隐藏中的RaisePostBackEvent,并使用一点逻辑深入到内部列表。

答案 1 :(得分:0)

如果你不关心做PostBack,那么简单的方法就是连接嵌套的ListViews,并让Item钩子连接到ItemCommand事件并绑定你需要的适用的RadListView,并隐藏其他的。您可以在这些控件上禁用ViewState以保持大小不变​​,因为如果您不进行任何分页或排序,您将只显示当前选定的项目ListView。

对于更快的回发,您可以在RadListView的客户端数据绑定

中闲逛

http://demos.telerik.com/aspnet-ajax/listview/examples/client/programmaticdatabinding/defaultcs.aspx

您将生成一个函数,您可以将ListView的ClientID发送到数据绑定以及单击标题时显示的外部div(如果需要)。

然后该函数将找到ListView,显示外部容器,并对其进行数据绑定。如果您需要该功能,您还可以包含可以折叠当前可见div的代码。保存前一个div的ID的全局变量将是一种简单的工作方式。