2011-02-14 63 views
0

我想使用slickgrid在軌道應用程序上有一個網格。如何在軌道上使用紅寶石加載slickgrid

我認爲最初的問題是沒有最佳做法,在哪裏或如何從sql數據庫加載數據網格。

在* .html.erb文件中,我是否使用javascript並嵌入了ruby代碼(甚至有可能)?

有人在那裏使用slickgrid,或任何可比的,在軌道應用程序上的紅寶石?

任何簡單的編碼示例都非常感謝!

回答

1

我用this post來動態生成一個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的hang problem(我希望你不需要它)。

1

有幾種方法可以將數據導入到SlickGrid中。最簡單的可能是AJAX調用。如果數據是靜態的,你可以將它嵌入到頁面中,但這可能比僅僅使用AJAX做的更有用也更困難。

您需要的第一件事是您可以訪問的路徑,它會將您的數據返回給瀏覽器,最好使用JSON格式,因此很容易在客戶端處理。

假設您要返回的數據只是一個簡單的集合,我們將使用Users列表的示例。

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(); 
    }); 

}); 

你可以如何使用SlickGrid從GitHub的庫例子: https://github.com/mleibman/SlickGrid/wiki/_pages

欲瞭解更多關於如何做AJAX調用使用jQuery這裏的文檔更常用的jQuery.ajax()函數: http://api.jquery.com/jQuery.ajax/

而且功能的getJSON,我專門用於: http://api.jquery.com/jQuery.getJSON/

0

我們可以在瀏覽器中以Json格式加載數據。所以,我用它來解析「user_data」數組。 例如。 localhost:3000/users.json

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