现在的位置: 首页 > 综合 > 正文

flexigrid 编程实现选中checkbox

2012年06月19日 ⁄ 综合 ⁄ 共 1009字 ⁄ 字号 评论关闭

原理是

1.遍历flexigrid产生的table对象,

2.根据一定的规则(取决于业务需求)查找到某行的某列值就是要匹配的值,然后返回input对象

3.对该input对象调用attr('chceked','checked')方法,设置为勾选状态。

例子代码:

	//return input jquery object if the power.name is found in one row
	//otherwise null will be returned
	findPower : function (powerName, grid) {
		var rows, length, i, input, row;
		rows = grid.children('tbody').eq(0).children('tr');
		length = rows.length;
		for (i = 0; i < length; (i += 1)) {
			row = rows.eq(i);
			input = row.children('td').eq(0).children('div').eq(0).children('input').eq(0);
			if (input.val() === powerName) {
				return input;
			}
		}
		return null;
	},

	selectRow : function (input) {
		input.attr("checked", "checked");
	},

	updateCheckboxStatus : function (grid, powers) {
		var length, i, input;
		length = powers.length;
		if (length === 0) {
			return;
		}
		for (i = 0; i < length; (i += 1)) {
			input = accounts.findPower(powers[i], grid);
			if (input !== null) {
				accounts.selectRow(input);
			}
		}
	},

updateCheckboxStatus函数接受两个参数,一个是flexigrid对象grid,一个是数组powers。

首先遍历powers数组,将当中的每个值拿到grid中查找。

查找由findPower函数实现。使用jquery对象逐行查找,找到后,返回input对象。

一旦找到,则调用selectRow函数设置勾选状态。

因此,基本上我的用法是把flexigrid看成一个前端table渲染器,只有后续的高级操作,直接对dom操作吧。

【上篇】
【下篇】

抱歉!评论已关闭.