Estoy tratando de manejar el clic de un botón personalizado en una jqgrid. Tengo los botones que muestran, pero cuando se hace clic en, mi función no se ejecuta. Si hago clic en un botón fuera de la jqgrid, la secuencia de comandos se ejecuta. ¿Jqgrid consumir el botón de clic? No está seguro de lo que me estoy perdiendo o no en el entendimiento. Aquí está la cuadrícula. La razón por la que estoy no recargar toda la cuadrícula es que hay demasiada procesamiento en el servidor, y la necesidad de sacar manualmente la fila en el cliente una vez que el editurl los procesos de la «enviar». See: $(".sendbuttons").click(function(){

        <style type="text/css">
.sendbuttons {
height:19px;
width:60px;
color:red;
}
</style>
<script language="javascript">
jQuery(document).ready(function(){
var last_row;
jQuery("#gridlist").jqGrid({
url:'manual_responses.php',
datatype: "json",
colNames:['ID','Image','Keyword','send Found','Proposed send',''],
colModel:[
{name:'item_id', index:'item_id', width:45, editable:false, hidden:true},
{name:'image', index:'image', width:45},
{name:'keyword',index:'keyword', width:100, editable: false},
{name:'item_found',index:'item_found', width:130, editable: false},
{name:'proposed_send',index:'proposed_send', width:130, editable: true, edittype:"textarea", editoptions:{rows:"2",cols:"37"}},
{name:'options',index:'options',width:40,editable: false}
],
rowNum:40,
rowList:[20,40,60],
imgpath: 'css/themes/sand/images',
sortname: 'keyword',
viewrecords: true,
sortorder: "asc",
caption:"Proposed sends",
onSelectRow: function(item_id){
if(item_id && item_id!==last_row){
jQuery("#gridlist").restoreRow(last_row);
jQuery("#gridlist").editRow(item_id,true);
last_row=item_id;
}
},
loadComplete: function(){ 
//alert('ok, loadComplete running');
var ids = jQuery("#gridlist").getDataIDs(); 
for(var i=0;i<ids.length;i++){ 
var cl = ids[i];
send = "<input class='sendbuttons' id='tbuttonSend"+cl+"' type='button' value='Send' /><br />"; 
clear = "<input class='sendbuttons' id='tbuttonClear"+cl+"' type='button' value='Send' /><br />"; 
jQuery("#gridlist").setRowData(ids[i],{options:send+clear}) 
} 
}, 
editurl: "item_send.php",
height:400,
width:796,
reloadAfterSubmit:false
}).navGrid('#pager2',{edit:true,add:false,del:false });
$(".sendbuttons").click(function(){
alert("got to 1");
});
});
</script>
</head>
<body>
<table id="gridlist" class="scroll" cellpadding="0" cellspacing="0"></table>
<div id="pager2" class="scroll" style="text-align:center;"></div>
<input type='button' class='sendbuttons' id='323423x' value='go:'/>
</body>
</html>
  • Estoy trabajando para responder a mí mismo, y creo que estoy yendo en la dirección correcta. He modificado mi evento de clic de botón para llamar a la saveRow función pasándole un succesfunc función y la dirección url. Por desgracia, la url parece ser mal interpretado…en Firebug|Consola dice item_send no definido. Hay limitaciones en lo que la dirección url debe verse como? mi url es item_send.php. enviar = «<input name=’enviar’ class=’tweetbuttons’ id=’tbuttonSend»+cl+»‘ type=’button» value= «Enviar» onclick=jQuery(‘#lista2’).saveRow(«+cl+»,function(){alert(‘madeithere’)},item_send.php); /><br />»;
InformationsquelleAutor dwaz | 2009-09-06

2 Comentarios

  1. 5

    Es evidente que el evento click,

    $(".sendbuttons").click(function(){
    alert("got to 1");
    });

    nunca incendios porque el clic de la fila que se consume. Usted puede, sin embargo, poner en su propio onclick código en el botón.

    send = "<input name='send' class='tweetbuttons' id='tbuttonSend"+cl+
    "' type='button' value='Send' 
    onclick=jQuery('#list2').saveRow("+cl+",function(){alert('made it here')},item_send); /><br />"; 

    Como se discutió en mi comentario, yo puedo llamar a la saveRow función con los parámetros.

  2. 0

    Agregar

    $(".sendbuttons").click(function(){
    alert("got to 1");
    });

    en gridComplete de devolución de llamada y dispara.

    loadComplete: function(){ 
    //alert('ok, loadComplete running');
    var ids = jQuery("#gridlist").getDataIDs();
    for(var i=0;i<ids.length;i++){
    var cl = ids[i];
    send = "<input class='sendbuttons' id='tbuttonSend"+cl+"' type='button' value='Send' /><br />";
    clear = "<input class='sendbuttons' id='tbuttonClear"+cl+"' type='button' value='Send' /><br />";
    jQuery("#gridlist").setRowData(ids[i],{options:send+clear})
    }
    $(".sendbuttons").click(function(){
    alert("got to 1");
    });
    },

Dejar respuesta

Please enter your comment!
Please enter your name here