multiselect multiple multi check bootstrap jqgrid multi-select checkboxlist

jqgrid - multiple - jquery datatable multi select checkbox



jqGrid multi-checkbox solución de tipo de edición personalizada (0)

Para aquellos de ustedes que intentan entender los tipos de edición personalizados de jqGrid ...

Creé un elemento de formulario de casilla de verificación múltiple y pensé que lo compartiría. Esto fue construido usando la versión 3.6.4. Si alguien tiene una solución más eficiente, por favor, pásalo.

Dentro del colModel, los campos de edición apropiados se ven así:

edittype:''custom'' editoptions:{ custom_element:MultiCheckElem, custom_value:MultiCheckVal, list:''Check1,Check2,Check3,Check4'' }

Aquí están las funciones de javascript (por cierto, también funciona, con algunas modificaciones, cuando la lista de casillas de verificación está en un bloque DIV):

//———————————————————— // Description: // MultiCheckElem is the "custom_element" function that builds the custom multiple check box input // element. From what I have gathered, jqGrid calls this the first time the form is launched. After // that, only the "custom_value" function is called. // // The full list of checkboxes is in the jqGrid "editoptions" section "list" tag (in the options // parameter). //———————————————————— function MultiCheckElem( value, options ) { //———- // for each checkbox in the list // build the input element // set the initial "checked" status // endfor //———- var ctl = ''''; var ckboxAry = options.list.split('',''); for ( var i in ckboxAry ) { var item = ckboxAry[i]; ctl += ''<input type="checkbox" ''; if ( value.indexOf(item + ''|'') != -1 ) ctl += ''checked="checked" ''; ctl += ''value="'' + item + ''"> '' + item + ''</input><br />&nbsp;''; } ctl = ctl.replace( /<br />&nbsp;$/, '''' ); return ctl; } //———————————————————— // Description: // MultiCheckVal is the "custom_value" function for the custom multiple check box input element. It // appears that jqGrid invokes this function the first time the form is submitted and, the rest of // the time, when the form is launched (action = set) and when it is submitted (action = ''get''). //———————————————————— function MultiCheckVal(elem, action, val) { var items = ''''; if (action == ''get'') // the form has been submitted { //———- // for each input element // if it''s checked, add it to the list of items // endfor //———- for (var i in elem) { if (elem[i].tagName == ''INPUT'' && elem[i].checked ) items += elem[i].value + '',''; } // items contains a comma delimited list that is returned as the result of the element items = items.replace(/,$/, ''''); } else // the form is launched { //———- // for each input element // based on the input value, set the checked status // endfor //———- for (var i in elem) { if (elem[i].tagName == ''INPUT'') { if (val.indexOf(elem[i].value + ''|'') == -1) elem[i].checked = false; else elem[i].checked = true; } } // endfor } return items; }