【问题标题】:Jqgrid custom button sending POST dataJqgrid自定义按钮发送POST数据
【发布时间】:2013-02-15 19:16:59
【问题描述】:

我使用这些代码:

     jQuery("#rowed2").jqGrid({        
    url:'server.php?q=3',
    datatype: "json",
        colNames:['Acc','Id','Ciudad', 'Corporacion','Radicado','Ultima Actuacion','Anotaciones'],
    colModel:[
    {name:'act',index:'act', width:72,  sortable:false},
    {name:'id',index:'id', width:31},
    {name:'ciudadh',index:'ciudadh', width:100, editable:true},
    {name:'corporacionh',index:'corporacionh', width:350, align:"right",editable:true,fixed:true },
    {name:'radicado',index:'radicado', width:190, align:"right",editable:true},     
    {name:'ultima',index:'ultima', width:160,align:"right",editable:true},      
    {name:'anotaciones',index:'anotaciones', width:200, sortable:false,editable:true}   
    ],


    rowNum:200,
    rowList:[10,20,30],
    imgpath: 'css',
    pager: jQuery('#prowed2'),
    sortname: 'actionID',
viewrecords: true,

sortorder: "desc",
height: "100%",


    loadComplete: function(){
    $("tr.jqgrow:odd").addClass('myAltRowClass');
            var ids = jQuery("#rowed2").getDataIDs();
            for(var i=0;i<ids.length;i++){
                    var cl = ids[i];
                    be = "<input style='height:20px;width:70px;' type='button' value='Modificar' onclick=jQuery('#rowed2').editRow("+cl+"); /><br>"; 
                    se = "<input style='height:20px;width:70px;' type='button' value='Guardar' onclick=jQuery('#rowed2').saveRow("+cl+"); /><br>"; 
                    ce = "<input style='height:20px;width:70px;' type='button' value='Cancelar' onclick=jQuery('#rowed2').restoreRow("+cl+"); />"; 

            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("#rowed2").setRowData(ids[i],{act:be+se+ce,anotaciones:send+clear})
            }    






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



    },


    editurl: "server2.php"
     });


   //botonañadir
   $("#bedata").click(function(){
jQuery("#rowed2").jqGrid('editGridRow',"new",{height:380,reloadAfterSubmit:false});
});

//botonborrar
$("#bedata2").click(function(){
var gr = jQuery("#rowed2").jqGrid('getGridParam','selrow');
if( gr != null ) jQuery("#rowed2").jqGrid('delGridRow',gr, {reloadAfterSubmit:false});
else alert("Antes de hacer clic en este boton seleccione el proceso que desea borrar!");
      });

    var timeoutHnd;
    var flAuto = false;

     function doSearch(ev){
if(!flAuto)
    return;
    //  var elem = ev.target||ev.srcElement;
if(timeoutHnd)
    clearTimeout(timeoutHnd)
timeoutHnd = setTimeout(gridReload,500)
    }

      function gridReload(){
var nm_mask = jQuery("#item").val();
var cd_mask = jQuery("#search_cd").val();
jQuery("#rowed2").jqGrid('setGridParam',{url:"server.php? nm_mask="+nm_mask+"&cd_mask="+cd_mask,page:1}).trigger("reloadGrid");
     }
      function enableAutosubmit(state){
flAuto = state;
jQuery("#submitButton").attr("disabled",state);
   }

所以我那个按钮

     send = "<input class='sendbuttons' id='tbuttonSend"+cl+"' type='button' value='Send' /><br />";  

可以像这个按钮一样通过帖子发送一些数据:

  be = "<input style='height:20px;width:70px;' type='button' value='Modificar'        onclick=jQuery('#rowed2').editRow("+cl+"); /><br>"; 
                se = "<input style='height:20px;width:70px;' type='button'  value='Guardar' onclick=jQuery('#rowed2').saveRow("+cl+"); /><br>"; 
                ce = "<input style='height:20px;width:70px;' type='button' value='Cancelar' onclick=jQuery('#rowed2').restoreRow("+cl+"); />"; 

例如,我的自定义按钮可以使用其他参数发送和操作称为“自定义”。

这可能吗?怎么样?

感谢您的帮助。

更新:

我正在尝试做一个这样的 ajax 函数:

      $(".sendbuttons").click(function(){
        $.ajax({
        type:'POST',
        url :'server2.php?id=+ids[i]+&oper=edit1',
        beforeSend : function(){
    $('#mensaje5').show().html('<br><br><h2>Por favor espere....<br><img src="c.gif" width="100" height="100" alt="cargando" border="0">');

        },
        success: function (){
         var nancu = parseInt(ids);
            alert(mega);
                ;

        },
        complete: function(){
     $('#form_data4').slideUp();

                }

    });



             });

这对我的需求来说似乎是个好主意,但我对这一行有疑问:

          url :'server2.php?id=+ids[i]+&oper=edit1',

我想获取按钮行的 id,然后通过 post 在 url 中发送这个 id,但我不知道该怎么做。

【问题讨论】:

    标签: jquery button jqgrid


    【解决方案1】:

    试试这个

    更改此send = "&lt;input class='sendbuttons' id='tbuttonSend"+cl+"' type='button' value='Send' /&gt;&lt;br /&gt;";

    send = "<input class='sendbuttons' id='tbuttonSend"+cl+"' onclick='send("+cl+");' type='button' value='Send' /><br />";
    

    并在Jquery主函数之外添加一个新函数

    ' function send(id)     $.ajax({
        type:'POST',
        url :'server2.php?id='+id+'&oper=edit1',
        beforeSend : function(){
    $('#mensaje5').show().html('<br><br><h2>Por favor espere....<br><img src="c.gif" width="100" height="100" alt="cargando" border="0">');
    
        },
        success: function (){
         var nancu = parseInt(ids);
            alert(mega);
                ;
    
        },
        complete: function(){
     $('#form_data4').slideUp();
    
                }
    
    });}'
    

    【讨论】:

    • 那不起作用:firebug 说:“ReferenceError: id is not defined” “TypeError: send is not a function”
    • 您必须在 jquery 函数和脚本标签内添加发送函数
    • 不,不工作。我在做另一个解决方案:使用这个:` $("#rowed2").jqGrid('setSelection', $(this).parents('tr').attr('id')); var allRows = $('#rowed2').jqGrid('getGridParam','selrow');` 效果很好,但唯一的问题是取决于 selrow
    猜你喜欢
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-22
    • 2011-10-05
    相关资源
    最近更新 更多