jqGrid单选按钮选择单行

像这样,我每行都有带有RadioButton的JqGrid。

... { name: 'select', label: 'select', width: 50, formatter:radio} 

和无线电格式器的function:

 function radio(value, options, rowObject){ var radioHtml = ''; return radioHtml; } 

当我尝试从jqgrid iee.中选择一个单选,单选按钮只能使用此function选择:

  $(function () { $("#").click(function () { var ids = $("#table").jqGrid('getCol', 'select', true); alert(ids) for (var i = 0; i < ids.length; i++) { //alert(ids[i].id) if (ids[i].id != '') { var idx = $("#table").jqGrid('getCell', ids[i].id, 'select'); } // alert(idx); } }); }); 

我得到网格中的所有行,而不是单个选定的行。

如果格式化器是复选框但不是无线电,则相同的function也能正常工作。 有什么遗失的吗?

更新:

  colModel: [ { name: 'select', label: 'select', width: 50, formatter: function radio(cellValue, option) { return ''; } }, { name: 'code', label: 'Branch Code', width: 250 }, { name: 'name', label: 'Branch Name', width: 250 }, { name: 'status', label: 'Group Status', width: 250 }, ], 

function单击处理程序:

  $("#").click(function () { alert('M'); var $selRadio = $('input[name=radio_' + $table[0].id + ']:checked'), $tr; alert('I'); if ($selRadio.length > 0) { $tr = $selRadio.closest('tr'); if ($tr.length > 0) { alert("The id of selected radio button is " + $tr.attr('id')); } } else { alert("The radio button is not selected"); } }); 

在我看来,你当前的代码来自$("#<%=editButton.ClientID%>").click非常复杂。 您可以通过更简单的方式完成所需的操作。

首先,我建议您使用按钮的name属性,该属性取决于网格的ID(请参阅答案 )。 它可能如下所示

 formatter: function (cellValue, option) { return ''; } 

您可以使用以下代码获取所选单选按钮的ID

 $("#<%=editButton.ClientID%>").button().click(function () { var $selRadio = $('input[name=radio_' + $grid[0].id + ']:checked'), $tr; if ($selRadio.length > 0) { $tr = $selRadio.closest('tr'); if ($tr.length > 0) { alert("The id of selected radio button is " + $tr.attr('id')); } } else { alert("The radio button is not selected"); } }); 

请参阅演示此演示:

在此处输入图像描述

我需要一个更简单的解决方案,所以我想出了这种使用内置多选的方法,而不是将另一个col添加到网格中。

 var gridSelector = $("#myGrid"); multiselect : true, beforeSelectRow: function(rowid, e) { $(gridSelector).jqGrid('resetSelection'); return (true); }, beforeRequest : function() { $('input[id=cb_myGrid]', 'div[id=jqgh_myGrid_cb]').remove(); }, loadComplete : function () { $('input[id^="jqg_myGrid_"]').attr("type", "radio"); },