第4個jqGrid範例: 資料列處理

jqGrid Method的執行方法語法是:

  $("#grid_id").jqGrid('方法', 參數 [,參數...]);

部份常用方法列表如下:

方法 說明
getRowData 取得列物件
delRowData 刪除指定的資料列
setRowData 修改指定的資料列
setSelection 切換指定的列為勾選或不勾選
addRowData 新增一筆資料列到最後
sortGrid 對Grid資料做排序處理
reloadGrid 重新讀資料到Grid

部份Grid參數(getGridParam):

參數 說明
url 取資料的網址
sortname 排序的欄名
sortorder 排序是升冪或降冪
selrow 取得被選取列
selarrrow 多選狀態下取得被選取的列記錄(select array row)
page 取得目前頁碼
rowNum 要求的列數
datatype 資料類型
records Grid裡的記錄筆數

options multiselect設成true時,在資料每列左方會出現勾選框供使用者打勾操作,要取回勾選了的列記錄,使用$("#list1″).jqGrid("getGridParam", "selarrrow")就可以了。

資料列處理範例(修改自示範資料夾裡的manipex.html與getex.html、setex.html、multiex.html):

< %@ page contentType="text/html;charset=UTF-8" %>
<html>
<head>
< %@ include file="/jqgrid/jq_inc.jspf" %>
<style type="text/css">
  .altClass {
    background: lightYellow;
    color: red;
  }
</style>
</head>
<table id="list1"></table>
<div id="pager1"></div>
<input type="button" id="btnGetRowData" value="選取列的資料(getRowData)"/>
<input type="button" id="btnDelRowData" value="刪除選取列(delRowData)"/>
<input type="button" id="btnSetRowData" value="設定選取列(setRowData)"/>
<input type="button" id="btnAddRowData" value="複製資料列(addRowData)"/>
<input type="button" id="btnGetArrayRow" value="多選資料列(selarrrow)"/><br />
<select id="selParam">
  <option value='url'>url</option>
  <option value='sortname'>sortname</option>
  <option value='sortorder'>sortorder</option>
  <option value='selrow'>selrow</option>
  <option value='page'>page</option>
  <option value='rowNum'>rowNum</option>
  <option value='records'>records</option>
  <option value='datatype'>datatype</option>
  <option value='caption'>caption</option>
</select>
<input type="button" id="btnGetParam" value="getGridParam"/><br />
<input id="newValue"/>
<input type="button" id="btnSortGrid" value="排序"/>
<hr />
<span id="spaMsg"></span>
<br />
<br />
</html>

<script type="text/javascript">
  jQuery(document).ready(function () {
    $.jgrid.defaults.altclass = "altClass";  // 奇偶列使用不同的樣式形成斑馬紋

    jQuery("#list1").jqGrid({
      url:'test1_xml.jsp',  // 主機端提供資料的網址
      datatype: "xml",
      colNames:['<font color="red">使用者代碼</font>','姓名', '密碼'],
      colModel:[
        { name:'userid', index:'userid', width:75 },
        { name:'username', index:'username', width:90, sortable:true },
        { name:'passwd', index:'passwd', width:100,align:'center' }
      ],
      rowNum:10,  // 由Server取回10筆
      rowList:[10,20,30],  // 每頁顯示筆數
      pager: jQuery('#pager1'),
      sortname: 'userid',
      sortorder: "desc",
      height: "auto",  // Grid高度
      autowidth: true, // 自動欄寬
      viewrecords: true,
      altRows: true,
      //footerrow: true,
      gridview: true,  // 設定成true以快速大量資料集之載入
      loadonce: true,  // 只由Server讀一次資料
      rownumbers: true,
      multiselect: true,  // 顯示勾選框
      caption:"jqGrid測試3"
    });
    // 要顯示編輯與新增按鈕時使用下列指令
    jQuery("#list1").jqGrid('navGrid', '#pager1', {edit:false,add:false,del:false});

    $("#btnGetRowData").click(function() {
      var id = $("#list1").jqGrid('getGridParam','selrow');
      if (id) {
        var row = $("#list1").jqGrid('getRowData', id);
        $("#spaMsg").text("被選取列:userid=" + row.userid +
                          " username=" + row.username +
                          " passwd=" + row.passwd);
      } else {
        $("#spaMsg").text("請先選取一列資料列。");
      }
    });  // getRowData

    $("#btnDelRowData").click(function() {
      var id = $("#list1").jqGrid('getGridParam','selrow');
      if (id) {
        var row = $("#list1").jqGrid('delRowData', id);
        $("#spaMsg").html("刪除被選取列:id=" + id + "<br />要叫用Server程式才會真的刪除");
      } else {
        $("#spaMsg").text("請先選取一列資料列。");
      }
    });  // delRowData

    $("#btnSetRowData").click(function() {
      var id = $("#list1").jqGrid('getGridParam','selrow');
      if (id) {
        var row = $("#list1").jqGrid('getRowData', id);
        var _sNewUserid = row.userid.toLowerCase();
        var row = $("#list1").jqGrid('setRowData', id, {userid: _sNewUserid});
        $("#spaMsg").html("userid改成小寫<br />要叫用Server程式才會真的修改");
      } else {
        $("#spaMsg").text("請先選取一列資料列。");
      }
    });  // setRowData

    $("#btnAddRowData").click(function() {
      var id = $("#list1").jqGrid('getGridParam','selrow');
      if (id) {
        var _iCount = $("#list1").jqGrid('getGridParam', 'records');
        var row = $("#list1").jqGrid('getRowData', id);
        $("#list1").jqGrid('addRowData', _iCount+1, row);
        $("#spaMsg").html("複製被選取列的資料");
      } else {
        $("#spaMsg").text("請先選取一列資料列。");
      }
    });  // addRowData

    $("#btnGetArrayRow").click(function() {
      var _aIDs = $("#list1").jqGrid('getGridParam','selarrrow');
      if (_aIDs.length > 0) {
        for (var i=0; i < _aIDs.length; i++) {
          var id = _aIDs[i];
          var row = $("#list1").jqGrid('getRowData', id);
          alert("勾選[" + (i+1) + "]=" + row.userid + "," + row.username);
        }
      } else {
        $("#spaMsg").text("請先勾選資料列。");
      }
    });  // getArrayrow

    $("#btnGetParam").click(function() {
      var _sParam = $("#selParam").val();
      $("#spaMsg").html(_sParam + '=' + $("#list1").jqGrid('getGridParam', _sParam));
    });  // addRowData

    $("#btnSortGrid").click(function() {
      var _sNewValue = $("#newValue").val();
      if ("userid,username,passwd".indexOf(_sNewValue) >= 0) {
        $("#list1").jqGrid('sortGrid', _sNewValue, false);
      }
    });  // sortGrid

  }); // ready()

</script>

jqGrid data manipulation

範例檔案下載(請用右鍵另存目標)

範例1 Local array: my_localex.html
範例2 Local array 2: my_localex2.jsp
範例3
  1. XML類型: my_xmlex.jsp
  2. XML字串類型: my_xmlstringex.jsp
  3. JSP含入檔: jq_inc.jspf
  4. 產生資料的程式範例:test1_xml.jsp
範例4 資料列處理程式: my_manipex.jsp

##

您可能也會有興趣的類似文章

15 則留言 »第4個jqGrid範例: 資料列處理

  • 老少咸宜 Windows XP Internet Explorer 6.0

    不好意思, 您這四個jqGrid範例後面的全部都下載不了, 可否重PO檔案造福網友, 非常感謝您。

  • 老少咸宜 Windows Vista Internet Explorer 8.0

    真是不好意思, 打擾您了, 我還是無法下載這四個jqGrid範例, 每個連結按下去都是空白頁。可否麻煩您email給我, 非常感謝您。

  • jack Windows other version Internet Explorer 8.0

    請問一下,要如何刪除多筆資料。

    謝謝

  • jack Windows other version Internet Explorer 8.0

    不好意思,我還有個問題就是
    jqGrid(‘addRowData’)
    要怎麼把資料傳到資料庫去
    謝謝

    • 簡睿 Windows other version Firefox 3.6.3

      jqGrid(‘addRowData’)是把記錄加到jqGrid的物件裡,並不是新增資料庫的記錄。

      新增的操作應該是navGrid的add按鈕開啟的form視窗裡輸入,按Save後透過editurl傳回後台處理。

      周日來得及得話,希望能再加個範例說明。

  • Bryant Windows XP Internet Explorer 7.0

    您好,拜讀了您的文章後我也想使用jqGrid,我用的是ASP.NET,在套用jqGrid前已確定Gridview已完成data binding,但套用jqGrid後,除了標題欄之外一片空白,程式碼如下,煩請您幫我看一下小弟那裡遺漏了,感謝您。

    $(document).ready(function() {
    jQuery(‘#GridView1′).jqGrid({
    url: ‘jqGrid.aspx’,
    datatype: "xml",
    height: 250,
    caption: "jqGrid Demo",
    gridview: true,

    colNames:['編號','標籤名稱', '說明', '建立者','建立日期','更新日期'],
    colModel:[
    {name:'Label_ID',index:'Label_ID', width:60, sorttype:"int"},
    {name:'Label_Name',index:'Label_Name', width:90, sorttype:"text"},
    {name:'Label_Desc',index:'Label_Desc', width:100},
    {name:'Create_User',index:'Create_User', width:80, align:"right",sorttype:"text"},
    {name:'Create_Date',index:'Create_Date', width:80, align:"right",sorttype:"text"},
    {name:'Update_Date',index:'Update_Date', width:80,align:"right",sorttype:"text"}]

    });
    });

  • Bryant Windows XP Internet Explorer 7.0

    原來如此,我鬧了個笑話,我還以為在jqGrid中指定Gridview就可以使用了,原來是先要將資料轉為XML,謝謝您的提點,我再試看看,感謝您!!

  • 陽光 Windows other version Google Chrome 15.0.874.120

    你好~請問有沒有遇過Uncaught jqGrid – No such method: getPostData這個問題
    一直辨識不到我的jqGrid

填寫回應

 

 

 

您可使用這些HTML標籤

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

隨機文章

  1. ClipMate 6.5的繁體中文下載 (1)
  2. 強化Windows Mobile的剪貼簿功能:Clipboard Tool 1.6 
  3. [Tools] 快速切換常用資料夾的工具:Direct Folders (1)
  4. 用jQuery改造WordPress網頁 (2)
  5. 如何備份Windows Live Writer的草稿與張貼內容? (4)
  6. 推薦《12 Undocumented Tricks for Google Buzz (12項不為人知的Google Buzz技巧)》 
  7. 在Windows上安裝Trac的完整步驟 (5)
  8. [Vista] 小試檔案總管的搜尋工具 
  9. 創下最快移除速度的微軟程式啟動器:Speed Launch (2)
  10. [Tools] 跨平台的RSS Reader: RSSOwl 

歷史熱門文章

  1. 如何手動輸入Plurk的表情圖示? (367,767 點擊/2008-09-29)
  2. 啟用&關閉中華電信ZyXEL P874的無線網路連線功能的步驟[修訂] (118,718 點擊/2011-06-01)
  3. Plurk CSS樣式自訂修改全攻略 (89,202 點擊/2009-07-04)
  4. 簡單放大Plurk輸入區的方法[修訂] (88,799 點擊/2008-09-29)
  5. 網路升級光世代50M/3M與設定ZyXEL P874 (71,280 點擊/2011-05-28)
  6. 輕鬆學會彈指神功-揭露AutoHotkey絕技 (50,584 點擊/2008-04-10)
  7. iPad新手入門技巧 (48,890 點擊/2011-02-05)
  8. iPad鍵盤輸入全攻略 (42,272 點擊/2011-01-01)
  9. 分享世博台灣館主題曲『台灣的心跳聲』MV(附歌詞+下載連結+新歌詞) (40,754 點擊/2010-04-27)
  10. 調整Windows 7環境: 加回工作列的「顯示桌面」圖示 (40,549 點擊/2010-01-02)