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"); },