将Telerik ASP.NET Ajax RadGrid加载到模式弹出窗口并通过Ajax刷新数据而不刷新页面

时间:2016-02-10 15:33:00

标签: javascript jquery asp.net ajax telerik

我有一个应用程序,它当前实现了动态创建的 RadGrid。通过从特定SQL Server视图中读取列和数据类型来生成网格。我们有很多这样的观点,这就是我们使用动态创作的原因。

每次用户与网格控件(例如过滤器/分页控件)交互时,都会刷新整个页面。 RadGrid在Page_PreInit方法中从头开始重新创建,并填充更新的数据。这是一种非常糟糕的用户体验,也消耗了服务器资源。

我正在浏览Telerik文档,但找不到我想要实现的目标的明确例子。我想知道是否可以达到以下要求:

  1. 点击页面上的链接将加载Telerik模态窗口弹出窗口。
  2. 通过Ajax POST请求向服务器检索模态弹出窗口的内容 - 这将创建初始动态网格并返回HTML内容类型。
  3. 一旦加载到模态弹出窗口中,网格HTML结构就变为动态,并且只有在事件触发时才从服务器返回来自分页或过滤操作的更新数据 - 最好只发送JSON以减少传输HTML的带宽开销。
  4. 使用Telerik UI for ASP.NET Ajax可以实现这个用例吗?

1 个答案:

答案 0 :(得分:1)

  1. 您可以,以下是如何打开RadWindow:http://docs.telerik.com/devtools/aspnet-ajax/controls/window/getting-started/opening-windows。基本上,调用它的show()客户端方法。

  2. 最简单的方法是使用一个aspx页面来渲染你的网格并在RadWindow中打开它(参见NavigateUrl属性和setUrl()客户端方法,以及radopen的第一个参数) ()或open())。 RadWindow将为该页面生成GET请求。

  3. 选项2:使用RadWindow的OnClientShow事件生成POST(例如,通过__doPostBack()MS AJAX函数)并使用RadWindow的ContentTemplate。检查以下文章,了解如何使用AJAX:http://docs.telerik.com/devtools/aspnet-ajax/controls/window/how-to/how-to-use-radwindow-with-ajax

    1. 这是通过第二点的第一个选项自动实现的 - 内容页面将封装自己的请求。 Option2中的正确AJAX设置将为您提供相同但网格将驻留在您的主页上。
    2. 提示:通常使用回发来获取数据。如果您想要少于此值,请对网格使用客户端绑定:http://demos.telerik.com/aspnet-ajax/grid/examples/data-binding/client-side/client-data-source-binding/defaultcs.aspx