Flexigrid例子一: 添加資料但不綁定server-side請求

來源:互聯網
上載者:User

這裡我解釋一下我的術語--將flexigrid綁定到server-side請求

你們會從互連網上發現有很多例子,它們都使用了url屬性,就像這樣:

$("#displays").flexigrid( {  url: 'load_all_displays',  method:'POST',  dataType: 'json',  width: 400,  height: 420,  colModel:[   {display: 'check', name: 'check', width: 30, sortable: true, align: 'left'},   {display: 'ID', name: 'id', width: 90, sortable: true, align: 'left'},   {display: 'description', name: 'description', width: 110, sortable: true, align: 'left'}  ] });

上面的url表明flexigrid將對當前web server的load_all_displays路徑發出POST請求。服務端應該返回資料,且是flexgrid期望的格式。
這是一個很容易理解且很好的例子。但是我有好的理由避免使用這種方法。

理由1:

我開發了一個web service.它會將資料發送到用戶端(瀏覽器或者不是瀏覽器)。Web server負責產生資料,用戶端負責將資料轉換成期望的格式用來渲染。或許一個開發人員使用flexigrid表達資料,另一個更喜歡用HTML5的table.

理由2:

我需要一個方法對flexigrid進行添加/修改/刪除操作,但是不要調用服務端的API. 所有這些操作應該僅發生在用戶端。當所有操作完成後,用戶端調用服務端API,一次更新資料。

按照我的方法,JavaScript代碼將從web server擷取資料,翻譯成正確的格式,並把資料添加到flexigrid. 讓我們來看一下我下面的例子:

var testData = { "page": 1, "total": 20, "rows": [  {"cell" : ["A", "a group", "0", "d"]},  {"cell" : ["B", "b group", "0", "d"]},  {"cell" : ["C", "c group", "0", "d"]},  {"cell" : ["D", "d group", "0", "d"]} ]}function config(groupName, description, deviceNumber, del) { $("#groups").flexigrid (  {   dataType: 'json',   width: 580,   height: 300,   colModel : [    {display: groupName, name: 'groupName', width: 160, sortable: true, align: 'left'},    {display: description, name: 'description', width: 200, sortable: true, align: 'left'},    {display: deviceNumber, name: 'deviceNumber', width: 100, sortable: true, align: 'left'},    {display: del, name: 'del', width: 40, sortable: true, align: 'left'}   ]  } ); }function fillData() { $("#groups").flexAddData(testData);}

config函數會在頁面載入完成的時候被調用。你會看到testData變數裡面有簡單的flexigrid資料格式。如果JavaScript調用fillData方法,testData會被加到flexigrid中。當然我們也需要在web頁面上定義一個table.

<table id="groups" style="display:none" bgcolor="#c4c4c4"></table>

我的解決方案需要更多的代碼。但是它讓你在開發網站的時候控制所有的事情。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.