У меня есть следующий код на странице, который связывает данные с сеткой запросов j.

Теперь я хочу добавить еще один столбец для флажков в существующую сетку, и когда я устанавливаю несколько флажков и нажимаю какую-то кнопку ... мне нужно получить выбранные значения строки.

Я видел несколько руководств по этому поводу, которые они упоминали о каком-то форматировщике .... но они неясны

Пожалуйста, помогите мне добиться этого.

Заранее спасибо.

Код:

$(document).ready(function () {
            $("#btn_GenerateEmpList").click(function () {
                var firstClick = true;
                if (!firstClick) {
                    $("#EmpTable").trigger("reloadGrid");
                }
                firstClick = false;
                var empId=  $("#txt_emp").val();

                $.ajax({
                    type: "POST",
                    url: "PLBased.aspx/GetEmpNames",
                    data: JSON.stringify({ empId: empId}),
                    contentType: "application/json;charset=utf-8",
                    dataType: "json",

                    success: function (result) {

                        result = result.d;
                        jQuery("#EmpTable").jqGrid({
                            datatype: "local",
                            colNames: ['Emp Name'],
                            colModel: [
                                    { name: "EmpName", Index: "EmpName", width: 80 }
                            ],
                            data: JSON.parse(result),
                            rowNum: 10,
                            rowList: [5, 10, 20],
                            pager: '#pager',
                            loadonce: false,
                            viewrecords: true,
                            sortorder: 'asc',
                            gridview: true,
                            autowidth: true,
                            sortname: 'EMPID',
                            height: 'auto',
                            altrows: true,

                        });
                    },
                    error: function (result) {

                        alert("There was some error ");
                    }
                });
            });

        });
0
user3543884 13 Май 2014 в 13:49

2 ответа

Лучший ответ

Установите опцию multiselect: true, которая добавит столбец флажков. Затем добавьте

$ ('# EmpTable'). JqGrid ('getGridParam', 'selarrrow')

Вернет массив выбранных идентификаторов.

0
mithun 15 Май 2014 в 11:20

Вы можете использовать customformatter, чтобы показать флажок в столбце. Для этого вы можете написать код, как показано ниже, в вашем коде jqGrid.

colNames: ['Id','Emp Name','Emp Checkbox'],
colModel: [
            { name: 'Id', index: 'Id', hidden: true },
            { name: 'EmpName', Index: 'EmpName', width: 80 },
            { name: 'Empchk', Index: 'Empchk', width: 50, align: 'center', editable: true, edittype: "checkbox", editoptions: { value: "true:false" },
                formatter: generateEmpCheckBox, formatoptions: { disabled: false } }
          ], 

Код функции formatter, как показано ниже,

function generateEmpCheckBox(cellvalue, options, rowObject) {
    var checkedStr = "";
    if (cellvalue == true) {
        checkedStr = " checked=checked ";
    }
    return '<input type="checkbox" onchange="UpdateEmpcheckbox(' + rowObject.Id + ',this)" value="' + cellvalue + '" ' + checkedStr + '/>';
}

function UpdateEmpcheckbox(selectedId, chkBox) {
    if ($(chkBox).prop("checked")) {
        //you can write an ajax here, to update the server
        //when the checkbox is checked
    }
    else if (!($(chkBox).prop("checked"))) {
          //you can write an ajax here to update the server
          //when the checkbox is unchecked
    }
  return false;
}
1
prakash2089 13 Май 2014 в 10:23