下面通过一个dhtmlxGrid的实例来向你展示该插件的常见使用方式。这里包含了dhtmlxGrid中最常见的使用,你掌握这些,你就可以将它应用到你的实际工作中了。下面是一些常用的JavaScript程序片段。
初始化表格,如下:
function initGrid() {
mygrid = new dhtmlXGridObject('gridbox');
mygrid.setImagePath("dhtmlxgrid/imgs/");
//标题显示内容
mygrid.setHeader("多选,单选,Name,Date of Birth, First Book Published");
//指明列的宽度,*表示是余下的宽度显示
mygrid.setInitWidths("*,50,50,50,50");
//表示内容排序位置,分别是左、中、中
mygrid.setColAlign("left,center,center,center,center");
}获取选中行的行ID,然后改变行ID,再次获取选中行的ID。如下:
function changRowid(){
var id = mygrid.getSelectedId();
mygrid.changeRowId( id, id+"1" );
alert(mygrid.getSelectedId())
}将选中行的字体变粗,如下:
function setRowTextBold(){
var id = mygrid.getSelectedId();
mygrid.setRowTextBold( id );
}设置选中行的样式(color:red;border:1px solid gray),如下:
function setRowTextStyle(){
var id = mygrid.getSelectedId();
mygrid.setRowTextStyle(id, "color:red;border:1px solid gray");
}将选中行从表格删除掉,如下:
function deleteColumn(){
var id = mygrid.getSelectedId();
mygrid.deleteColumn( id );
}设置段元个的类型,如下:
/*
ch ---- checkbox
ra ---- radio
ro ---- readonly
txt ---- 显示的是字符串
*/
mygrid.setColTypes("ch,ra,ro,link,txt");
//mygrid.setColTypes("ed,dhxCalendar,dhxCalendarA");设置单元格按照什么类型排序,如下:
// 按照什么方式排序int,str,date 三个类型
mygrid.setColSorting("str,str,str,str,date");指定表格使用什么皮肤,如下:
//指明使用什么皮肤(天蓝色),这个和前面引用是CSS对应起来
mygrid.setSkin("dhx_skyblue");
mygrid.setSkin("dhx_black");初始化表格和加载数据,如下:
//初始化数据
mygrid.init();
// 从XML文件加载数据
mygrid.loadXML("../common/grid_dates.xml");使用json对象初始化表格数据,并且设置回调函数。如下:
//备注:数据列一定要和标题栏对应起来,否则会显示前面的数据
//上面每个配置项都需要一一对应,否则会出现意想不到的错误,很难发现,即对每一列样式的设置
var js={
rows : [
{
id:1001,
data:[
"0", //0表示checkbox没有被选中
"ra1", //非0表示radio被选中
"100", //^后面显示的是链接地址,一定要指明这列数据类型是link
"A Time to Kill^https://www.baidu.com",
"05/01/1998"
]
},
{
id:1002,
data:[
"1",//非0表示checkbox被选中
"0",//非0表示radio被选中
"1000",
"Blood and Smoke",
"01/01/2000"
]
}
]
}
// 指明导入数据的回调函数
mygrid.parse(js, function(){
//alert(1);
}, "json");获取指定单元格的信息,如下:
mygrid.cells(row_id, col) -- 通过行ID,列下标 确定cell对象 mygrid.cells2(rowIndex,col) -- 通过行、列下标 确定cell对象 // 从第0行0列开始计算,弹出信息是05/01/1998 alert( mygrid.cells2(0,4).getValue() ); // 弹出信息是05/01/1998 alert( mygrid.cells(1001,4).getValue() );
给指定的单元格赋值,设置值给行ID为1001的第5列,如下:
mygrid.cells(1001,4).setValue("05/01/1997");绑定checkbox和radio事件 ,如下:
/*
rId - id or the row; 弹出的是行ID
cInd - index of the cell;
state- state of the checkbox/radiobutton.
*/
mygrid.attachEvent("onCheckbox", function(rId,cInd,state){
alert(rId);//
alert(cInd);
alert(state);
});设置数据表行被双击时触发的事件处理器,如下:
/*
rId - id or the row; 弹出的是行ID
cInd - index of the cell; 双击的列,从第0项开始
*/
mygrid.attachEvent("onRowDblClicked", function(rId,cInd){
alert(rId);
alert(cInd);
});设置数据表行被选中时触发的事件处理器,如下:
mygrid.attachEvent("onRowSelect", function(id, ind){
alert(id);
alert(ind);
});添加一行数据到表格的第一行位置,如下:
/* new_id - id of the new row; text - array|string of row's labels, may be a comma separated list or an array; ind - position of the row (optional), row is added to the last position by default. */ mygrid.addRow(123,"0,0,555,huangbiao,1988/11/30",0);
将指定的数据行上/下移动一行,如下:
mygrid.moveRowDown(123); mygrid.moveRowUp(123);
清除表格里面的全部数据,如下:
// 只删除数据,不删除header mygrid.clearAll(); // 数据和header全部删除 mygrid.clearAll(true);
得到数据表总共的行数,如下:
alert( mygrid.getRowsNum() );