0

我想在使用 slickgrid 的 rails 应用程序上有一个网格。

我认为我最初的问题是没有关于在哪里或如何使用 sql 数据库中的数据加载网格的最佳实践。

在 *.html.erb 文件中,我是否使用 javascript 并嵌入 ruby​​ 代码(这甚至可能)?

有没有人在使用 slickgrid 或任何类似的东西,使用 ruby​​ on rails 应用程序?

非常感谢任何简单的编码示例!

4

3 回答 3

1

我使用这篇文章动态生成了一个 JavaScript 文件。看起来像:

var columns = ...
var options = ...

$(function() {
  var data = [];
  data[0] = {...};
  data[1] = {...};
  data[2] = {...};
  ...
  var grid = new Slick.Grid($("#my_grid"), data, columns, options);
});

我能够将数据库中的数据加载到 SlickGrid 中。但是,目前我确实遇到了columnpicker 的挂起问题(我希望你不需要它)。

于 2011-02-22T13:39:09.900 回答
1

有几种方法可以将数据导入 SlickGrid。最简单的可能是 AJAX 调用。如果数据是静态的,您可以将其嵌入到页面中,但这可能比仅使用 AJAX 更有用且更困难。

您需要的第一件事是您可以访问的路由,它将您的数据返回到浏览器,最好是 JSON 格式,以便在客户端轻松处理。

假设您要返回的数据只是一个简单的集合,我们将使用用户列表的示例。

class UsersController < ApplicationController
  def index
    @users = User.all

    respond_to { |format|
      format.json { render :json => @users }
    }

  end
end

我们假设您可以通过 URL http://example.com/users/访问它

现在我们有了获取数据的方法,我们可以使用 JavaScript 在浏览器端提取数据。我的示例将使用 jQuery,但任何 JavaScript 框架都将有一种简单的方法来进行 AJAX 调用。

请注意,SlickGrid 需要一个放置数据的地方。所以我假设你的 HTML 中有这样一行:<div id="slickGrid"></div>

# We need to wait for the DOM to be loaded so we wrap our AJAX call in a
# jQuery call that's the equivalent of document.ready()
jQuery(function() {

  # getJSON is a jQuery convenience function for doing an AJAX call
  # that fetches some JSON data.
  jQuery.getJSON('http://example.com/users', function(data) {
    grid = new Slick.Grid("#slickGrid", data, columns, options);
    $("#slickGrid").show();
  });

});

您可以从 Github 存储库中获取更多有关如何使用 SlickGrid 的示例: https ://github.com/mleibman/SlickGrid/wiki/_pages

有关如何使用 jQuery 进行 AJAX 调用的更多信息,请查看更通用的 jQuery.ajax() 函数的文档:http: //api.jquery.com/jQuery.ajax/

还有我专门使用的getJSON函数:http: //api.jquery.com/jQuery.getJSON/

于 2012-01-10T17:49:02.127 回答
0

我们可以在浏览器中以 Json 格式加载数据。所以,我用它来解析成“user_data”数组。例如。本地主机:3000/users.json

var user_data = <%= @users.to_json.html_safe %>;

于 2013-02-13T09:24:25.290 回答