jqGrid单选一行实现

以下三个属性缺一不可:

multiselect: true,
multiboxonly:true,
beforeSelectRow: beforeSelectRow,//js方法

function beforeSelectRow()
	{
    	$("#jqgridId").jqGrid('resetSelection');
	    return(true);
	}

这样就可以完成只选择一行记录的操作了。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
jqGrid 4.6 版本中,启用树形网格的方式略有不同。需要将 `gridview` 项设置为 `false`,以便 jqGrid 正确处理树形结构。此外,需要将 `treeGrid` 项设置为 `true`,以启用树形网格功能。 为了在树形结构中启用 checkbox 单选功能,我们可以通过自定义 formatter 来实现。例如: ``` $("#myGrid").jqGrid({ url: "myData.json", datatype: "json", colModel: [ { name: "id", label: "ID", width: 50 }, { name: "name", label: "Name", width: 100 }, { name: "address", label: "Address", width: 150 }, { name: "selected", label: "Selected", width: 50, formatter: selectFormatter } ], gridview: false, // 关闭 gridview treeGrid: true, // 启用树形网格 ExpandColumn: "name", // 显示展开/收起图标的列名 rowNum: 10, rowList: [10, 20, 30], pager: "#myPager", caption: "My Grid" }); function selectFormatter(cellValue, options, rowObject) { var checkboxHtml = '<input type="checkbox" class="select-checkbox" data-rowid="' + rowObject.id + '"'; if (cellValue) { checkboxHtml += ' checked="checked"'; } checkboxHtml += ' />'; return checkboxHtml; } // 绑定单选事件 $(document).on('click', '.select-checkbox', function() { var $checkbox = $(this); var rowId = $checkbox.data('rowid'); var currentState = $checkbox.is(':checked'); var $grid = $("#myGrid"); // 取消其他行的中状态 $grid.find('.select-checkbox').not(this).prop('checked', false); // 更新当前行的中状态 var data = $grid.jqGrid('getRowData', rowId); data.selected = currentState ? 'true' : 'false'; $grid.jqGrid('setRowData', rowId, data); }); ``` 在上面的例子中,我们定义了一个 `selectFormatter` 函数,用于将 `selected` 列的值渲染为 checkbox。在 checkbox 的 `data-rowid` 属性中存储了当前行的 ID,方便事件处理时获取。 通过绑定 `click` 事件,我们实现了 checkbox 的单选功能。当用户选择一个 checkbox 时,我们先取消其他行的中状态,然后更新当前行的中状态,并使用 `setRowData` 方法将新的数据设置回 jqGrid 中。 需要注意的是,在启用树形网格的情况下,如果用户选择了一个父节点,则该节点下的所有子节点都会被中。为了避免这种情况,我们可以在事件处理中检查当前行是否为叶子节点,如果不是,则不处理该事件。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值