かなり簡単サンプル
すこしレベルアップしたサンプル。
ちなみに、addRowData の一つ目の引数はnullではダメです。undefined にすると、自動で采番してくれます。
さらにちなみに、jqGridが内部的に保持しているIDと、画面に表示されているIDは別物となってます。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>単一選択サンプル</title>
<link rel="stylesheet" type="text/css" media="screen" href="css/jquery-ui-1.7.2.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
<script type="text/javascript" src="js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/i18n/jquery.jqGrid.min.js"></script>
<script type="text/javascript" src="js/jquery.jqGrid.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function()
{
jQuery("#list").jqGrid({
datatype: "local",
colNames:['ID', '名前'],
colModel:[
{name:'id'},
{name:'name'},
],
caption: '配列をグリッド表示する'
});
var mydata = [
{id:"1",name:"test1"},
{id:"2",name:"test2"},
{id:"3",name:"test3"},
];
for(var i=0;i<=mydata.length;i++)
jQuery("#list").addRowData(undefined,mydata[i]);
// 行データを取得する
jQuery("#btn1").click( function()
{
var grid = jQuery("#list");
var id = grid.getGridParam("selrow");
if(id)
{
var row = grid.getRowData(id);
alert("選択されたデータは ID、名前 = " + row.id + ", " + row.name);
}
else
alert("選択されてません");
});
// 行データを削除する
jQuery("#btn2").click( function()
{
var grid = jQuery("#list");
var id = grid.getGridParam("selrow");
if(id)
{
var rtn = grid.delRowData(id);
if( rtn )
alert("削除成功");
else
alert("削除失敗");
}
else
alert("選択されてません");
});
// 行データを更新する
jQuery("#btn3").click( function()
{
var grid = jQuery("#list");
var id = grid.getGridParam("selrow");
if(id)
{
var update_name = $("#update_name_text").val();
var rtn = grid.setRowData(id, {name : update_name});
if( rtn )
alert("更新成功");
else
alert("更新失敗");
}
else
alert("選択されてません");
});
// 行データを追加する
jQuery("#btn4").click( function()
{
var grid = jQuery("#list");
var insert_id = $("#insert_id_text").val();
var insert_name = $("#insert_name_text").val();
var row = {id: insert_id, name: insert_name};
var rtn = grid.addRowData(undefined, row);
if( rtn )
alert("追加成功");
else
alert("追加失敗");
});
});
</script>
</head>
<body>
<table id="list" class="scroll" cellpadding="0" cellspacing="0"></table>
<p><button id="btn1">選択中の行を取得する</button></p>
<p><button id="btn2">選択中の行を削除する</button></p>
<p><button id="btn3">選択中の行を更新する</button> 名前:<input type="text" id="update_name_text" /></p>
<p><button id="btn4">行を追加する</button> ID:<input type="text" id="insert_id_text" /> 名前:<input type="text" id="insert_name_text" /></p>
</body>
</html>