【问题标题】:Load a Telerik ASP.NET Ajax RadGrid into a Modal Popup and Refresh Data Over Ajax without Page Refresh将 Telerik ASP.NET Ajax RadGrid 加载到模态弹出窗口中并通过 Ajax 刷新数据而不刷新页面
【发布时间】:2016-05-21 01:12:14
【问题描述】:

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

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

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

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

这个用例可以用 Telerik UI for ASP.NET Ajax 实现吗?

【问题讨论】:

    标签: javascript jquery asp.net ajax telerik


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

    2. 最简单的方法是创建一个 aspx 页面,该页面将呈现您的网格并在 RadWindow 中打开它(请参阅 NavigateUrl 属性和 setUrl() 客户端方法,以及 radopen 的第一个参数() 或打开())。 RadWindow 将为该页面生成一个 GET 请求。

    选项 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 设置将提供相同的结果,但网格将驻留在您的主页上。

    提示:通常使用回发来获取数据。如果您想要的更少,请为您的网格使用客户端绑定:http://demos.telerik.com/aspnet-ajax/grid/examples/data-binding/client-side/client-data-source-binding/defaultcs.aspx

    【讨论】:

    • 谢谢!我会试一试,看看它是否能解决我的问题。
    猜你喜欢
    • 2023-03-16
    • 1970-01-01
    • 2012-03-04
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多