JQGrid:添加,编辑表单未显示在寻呼机按钮单击

时间:2016-06-20 07:03:20

标签: jquery jqgrid bootstrap-multiselect

我正在使用JQuery 2.0.3和jquery-migrate-1.4.1。 添加JQuery migrate js之后,JQGrid添加,编辑寻呼机按钮,不在分页器按钮点击上显示添加/编辑表单。

我无法降级JQuery,因为我在我的页面中使用了bootstrap多选下拉按钮,这需要Jquery 1.9及更高版本。

如何使JQGrid寻呼机按钮起作用。 PLZ。建议。

找到我的代码:

 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@page import="org.samsung.network.util.Constants" %>
<%@page import="java.sql.Connection" %>
<%@page import="java.sql.PreparedStatement" %>
<%@page import="java.sql.ResultSet" %>
<%@page import="java.sql.SQLException" %>
<%@page import="javax.sql.DataSource" %>
<%@page import="javax.naming.InitialContext" %>
<%@page import="javax.naming.Context" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 <html>
   <head>
       <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
      <title>Test</title>

     <link rel="stylesheet" type="text/css" media="screen" href="/NSTest_Dev/css/smoothness/jquery-ui-1.8.6.custom.css" />
     <link rel="stylesheet" type="text/css" media="screen" href="/NSTest_Dev/css/bootstrap-3.2.0-min.css"/>
     <link rel="stylesheet" type="text/css" media="screen" href="/NSTest_Dev/css/ui.jqgrid.css" />
     <link rel="stylesheet" type="text/css" media="screen" href="/NSTest_Dev/css/common.css" />
  <link rel="stylesheet" type="text/css" media="screen" href="/NSTest_Dev/css/demos_m.css" />
  <link rel="stylesheet" type="text/css" media="screen" href="/NSTest_Dev/css/bootstrap-multiselect.css"/>

  <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  <script type="text/javascript" src="/NSTest_Dev/js/jquery-migrate-1.4.1.min.js"></script>
  <script type="text/javascript" src="/NSTest_Dev/js/i18n/grid.locale-en.js"></script>
  <script type="text/javascript" src="/NSTest_Dev/js/jquery.form.js"></script>
  <script type="text/javascript" src="/NSTest_Dev/js/jquery.jqGrid.min.js"></script>
  <script type="text/javascript" src="/NSTest_Dev/js/bootstrap.min.js"></script>
  <script type="text/javascript" src="/NSTest_Dev/js/bootstrap-multiselect.js"></script>

<script type="text/javascript">
  jQuery(document).ready(function() {
    <%if(session.getAttribute("FromDevID") != null && session.getAttribute("ToDevID") != null ){%>
    $('#from').val('<%=(String)session.getAttribute("FromDevID")%>');
    $('#to').val('<%=(String)session.getAttribute("ToDevID")%>');
    $('#sec').val('search');
 <%}%>

$('#jqg_calltest').jqGrid('GridUnload'); 
$("#jqg_calltest").jqGrid({
    //url from wich data should be requested
    url: 'calltest_json.jsp',
    postData: {
        fromDate: function() { return jQuery("#from").val(); },
        toDate: function() { return jQuery("#to").val(); },
        section : function() { return jQuery("#sec").val(); },
        sItem : function() { return jQuery('#sItem :selected').val();},
        sItemTxt : function() { return jQuery("#sItemTxt").val(); },
        locationid : function() { return jQuery("#sLocation").val(); },
        testgroupid : function() { return jQuery("#sTestGroup").val(); },
    },
    //type of data
    datatype: 'json',
    //url access method type
    mtype: 'POST',
    multiselect: true,
    //columns names
    colNames: ['Device ID', 'IMEI','Call Action','Phone Number', 'Calling To','Receiving From','Granularity','Periodicity','Mute Duration(in Mins)','Request Received','Device Status','Remarks', 'Location','Test Group','Restart', 'Stop'],
    //columns model
    colModel: [
                { name: 'devid', index: 'devid', align: 'center', width: 60, editable: true, sortable: false },
                { name: 'imei', index: 'imei', align: 'center', width: 120, sortable: false, editable: true},
                { name: 'call_action', index: 'call_action', align: 'center', width: 70, sortable: false, editable: true },
                { name: 'phone_number', index: 'phone_number', align: 'center', width: 100, sortable: false, editable: true },
                { name: 'call_number', index: 'call_number', align: 'center', width: 100, sortable: false, editable: true },
                { name: 'call_receive', index: 'call_receive', align: 'center', width: 100, sortable: false, editable: true },
                { name: 'granularity', index: 'granularity', align: 'center', width: 65, sortable: false, editable: true },
                { name: 'periodicity', index: 'periodicity', align: 'center', width: 65, sortable: false, editable: true },
                { name: 'duration', index: 'duration', align: 'center', width: 65, sortable: false, editable: true },
                { name: 'gcmstatus', index: 'gcmstatus', align: 'center', width: 80, sortable: false, editable: false,formatter: gcmStatusFormatter},
                { name: 'dstatus', index: 'dstatus', align: 'center', width: 90, sortable: false, editable: false,formatter: deviceStatusFormatter},
                { name: 'remarks', index: 'remarks', align: 'center', width: 230, sortable: false, editable: false, formatter: remarksFormatter},
                { name: 'LID', index: 'LID', align: 'center', width: 80, sortable: false, editable: false, formatter: remarksFormatter},
                { name: 'TGID', index: 'TGID', align: 'center', width: 80, sortable: false, editable: false, formatter: remarksFormatter},
                { name: 'restart', index: 'restart', align: 'center', width: 80, sortable: false, editable: false, formatter: restartBtnFormatter },
                { name: 'stop', index: 'stop', align: 'center', width: 80, sortable: false, editable: false, formatter: stopBtnFormatter }


    ],

    //pager for grid
    pager: $('#jqg_calltestpager'),

    //number of rows per page
    rowNum: 100,
    rowList: [10,25,40,75,100, 500, 1000, 1500],
    sortname: 'DeviceID',
    sortorder: 'ASC',
    autowidth: true,
    shrinkToFit: false,
    viewrecords: true,
    loadonce: false,
    rownumbers: true,
    rownumWidth: 40,
    height: 600,
    //width: 1200,
    caption: "&nbsp;&nbsp;Call Test Data",
    emptyrecords: 'No data to display!',
    loadtext: 'Loading...',
  //  autoid : true,

    afterInsertRow: function (rowid, data) {
        // To Restart Row Test
         var  grid = $("#jqg_calltest");
         var iCol = getColumnIndexByName (grid, "restart");
         $("td:eq("+iCol+")","#"+rowid).click(function () {
         //$("td:eq(10)","#"+rowid).click(function () {
            var strdata ="";
            var rowData =jQuery('#jqg_calltest').jqGrid("getRowData", rowid);

            strdata = strdata +rowData.devid+"&";
            strdata = strdata + rowData.imei+"&";
            strdata = strdata +rowData.call_action+"&";
            strdata = strdata + rowData.call_number+"&";
            strdata = strdata + rowData.call_receive+"&";
            strdata = strdata + ",";
            $.ajax({
                type: "POST",
                url: "SendCallMessage",
                dataType:"json",
                data:{
                    calldata: strdata
                },
                success: function(response, textStatus, jqXHR) {
                    // display an success message if needed
                    alert("Call Test for Device ID: "+rowData.devid +" has been Restarted");
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    // display an error message in any way
                    alert("ERROR Restarting Call Test!!!");
                }
            });
         });

        //To Stop Row Test
         iCol = getColumnIndexByName (grid, "stop");
         $("td:eq("+iCol+")","#"+rowid).click(function () {
        //$("td:eq(11)","#"+rowid).click(function () {
            var strdata ="";
            var rowData =jQuery('#jqg_calltest').jqGrid("getRowData", rowid);
                    strdata = strdata +rowData.devid+"&";
            strdata = strdata + rowData.imei;
            strdata = strdata + ",";
            //alert(strdata);
            $.ajax({
                type: "POST",
                url: "SendStopCallMessage",
                dataType:"json",
                data:{
                    stoppingdata: strdata
                },

                success: function(response, textStatus, jqXHR) {
                    // display an success message if needed
                    alert("Call Test for Device ID: "+rowData.devid +" has been stopped");
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    // display an error message in any way
                    alert("ERROR Stopping Call Test!!!");
                }
            });
         }); 
    },
    loadComplete : function(){
        var selRowIds = jQuery("#jqg_calltest").jqGrid('getGridParam', 'selarrrow');
        totalcount = 0;
        failcount = 0;
        for(var i=0;i<selRowIds.length;i++){ 
            totalcount++;
            var celValue = jQuery("#jqg_calltest").jqGrid ('getCell', selRowIds[i], 'dstatus');
            if(celValue.indexOf("DISCONNECTED")>=0){
                 failcount++;
             }
        }
         $("label[for='lblCount']").text(failcount + '/' + totalcount);
         $("#jqg_calltest").jqGrid("setLabel", "rn", "RN");
 },
  onSelectRow: function (id, status) {
     // var selRowId = jQuery("#jqg_calltest").jqGrid ('getGridParam', 'selrow');
      var celValue = jQuery("#jqg_calltest").jqGrid ('getCell', id, 'dstatus');
      if (status) { // selected
             if(celValue.indexOf("FAIL")>=0){
                  failcount++;
              }
            totalcount ++;
        }else{
             if(celValue.indexOf("FAIL")>=0){
                  failcount--;
              }
            totalcount --;  
        }
        $("label[for='lblCount']").text(failcount + '/' + totalcount);
    },
    onSelectAll:function(id,status){
        if(status){
            totalcount = id.length;
            failcount = 0;
            for(i=0;i<id.length;i++){
                var celValue = jQuery("#jqg_calltest").jqGrid ('getCell', id[i], 'dstatus');
                 if(celValue.indexOf("FAIL")>=0){
                     failcount++;
                 }
            }
        }else{
            totalcount = 0;
            failcount = 0;
        }

        $("label[for='lblCount']").text(failcount + '/' + totalcount);
    }
  });
jQuery("#jqg_calltest").jqGrid('navGrid', '#jqg_calltestpager', {
    edit : true, add : true, del : true,search : false, refresh:false, refreshstate: "current"},
    //edit options
    {
          beforeShowForm: function(form) {
             $('#tr_imei', form).hide(); 
             $('#tr_devid', form).hide(); 
            //$('#tr_imei', formid).attr("disabled", "disabled");
         }, 


         afterSubmit: function (response) {
               if (response.status == 200) {
                   $(this).jqGrid('setGridParam', 
                    { datatype: 'json' }).trigger('reloadGrid', [{current:true}]);//Reloads the grid after edit
                  //failcount = 0;
                  //totalcount = 0;
                   return [true, ''];
               }
                else {
                   $(this).jqGrid('setGridParam', 
                   { datatype: 'json' }).trigger('reloadGrid', [{current:true}]); //Reloads the grid after edit
                  //failcount = 0;
                  //totalcount = 0;
                   return [false, response.responseText];
                   //Captures and displays the response text on th Edit window
               } 

           },

         onclickSubmit: function(rp_ge, postdata) {
                    rp_ge.url = 'calltest_json.jsp?section=edit';
            },

           closeOnEscape: true,//Closes the popup on pressing escape key
           reloadAfterEdit: true,
           closeAfterEdit: true,
           drag: true,
    },
    //add options
     {
        afterShowForm: function (form) {
         $('#tr_imei', form).show(); 
         $('#tr_devid', form).show(); 
         }, 
          afterSubmit: function (response) {
            var myInfo = '<div class="ui-state-highlight ui-corner-all">'+
                         '<span class="ui-icon ui-icon-info" ' +
                             'style="float: left; margin-right: .3em;"></span>' +
                         response.responseText +
                         '</div>',
                $infoTr = $("#TblGrid_" + $.jgrid.jqID(this.id) + ">tbody>tr.tinfo"),
                $infoTd = $infoTr.children("td.topinfo");
            $infoTd.html(myInfo);
            $infoTr.show();

            // display status message to 3 sec only
            setTimeout(function () {
                $infoTr.slideUp("slow");
            }, 5000);
            //failcount = 0;
            //totalcount = 0;
            return [true, "", ""]; // response should be interpreted as successful
        }, 
       errorTextFormat: function (response) {
           var txt = response.statusText;
           var restxt = response.responseText;
            if(response.status == 406){
            return '<span class="ui-icon ui-icon-alert" ' +
                         'style="float:left; margin-right:.3em;"></span>' +
                         "Device ID Already Exists";
            }
            else {
            return '<span class="ui-icon ui-icon-alert" ' +
             'style="float:left; margin-right:.3em;"></span>' +
             "IMEI Already Exists";
            }

        }, 

        onclickSubmit: function(rp_ge, postdata) {
            var totalrecords = $('#jqg_calltest').getGridParam("records") ;

            rp_ge.url = 'calltest_json.jsp?section=add&devidmax='+ totalrecords;    
        },
        closeOnEscape: true,//Closes the popup on pressing escape key
        reloadAfterSubmit: true,
        closeAfterSubmit: true,
        closeAfterAdd: true,
        drag: true,
    },
    //del options
    {

         beforeShowForm: function ($form) {
            var rowids = jQuery('#jqg_calltest').jqGrid('getGridParam', 'selarrrow');


            $("td.delmsg", $form[0]).html("Delete selected Record with Device ID<b>: " +
                    rowids + "</b>?");

        },
        afterSubmit: function (response, postdata) {
               if (response.status == 200) {
                   $('#jqg_calltest').jqGrid('setGridParam', 
                     { datatype: 'json' }).trigger('reloadGrid', [{current:true}]);//Reloads the grid after edit
                 //failcount = 0;
                // totalcount = 0;
                   return [true, ''];
               }
               else {
                   $('#jqg_calltest').jqGrid('setGridParam', 
                     { datatype: 'json' }).trigger('reloadGrid', [{current:true}]); //Reloads the grid after edit
                 // failcount = 0;
                 //totalcount = 0;
                   return [false, response.responseText];
                   //Captures and displays the response text on th Edit window
               }
            }, 
        onclickSubmit: function(rp_ge, postdata) {

             var selIds = jQuery("#jqg_calltest").jqGrid('getGridParam', 'selarrrow');
             var strdata ='';
             for(var i = 0; i < selIds.length; i++){
                var rowData =jQuery("#jqg_calltest").jqGrid("getRowData", selIds[i]);

                 strdata = strdata + rowData.imei; 
                 strdata = strdata + ",";
             }  
            rp_ge.url = 'calltest_json.jsp?section=delete&imei='+ strdata;
        },
        closeOnEscape: true,
        closeAfterDelete: true,
        reloadAfterDelete: true, 
     },
    //search options
    {
    },
    // veiw options
    {
        width: 500, height: 'auto',
        closeOnEscape: true
    });
  });

var failcount = 0;     
var totalcount = 0;

   function restartBtnFormatter(cellvalue, options, rowObject) {    
     return "<input type='button' value='Restart' class='btn btn-primary'/>";
  }

  function stopBtnFormatter(cellvalue, options, rowObject) {    
    return "<input type='button' value='Stop' class='btn btn-primary'/>";
  }

   function gcmStatusFormatter(cellvalue, options, rowObject) {  
       if(cellvalue == "YES")
          return '<span style="color:green"><B>'+cellvalue+'</B></span>';
       else  if(cellvalue == "NA")
         return '<span style="color:blue"><B>'+cellvalue+'</B></span>';
      else
        return '<span style="color:red"><B>'+cellvalue+'<B></span>';
 }

  function deviceStatusFormatter(cellvalue, options, rowObject) { 
    if(cellvalue == "CONNECTED")
           return '<span style="color:green"><B>'+cellvalue+'</B></span>';
    else  if(cellvalue == "NA")
       return '<span style="color:blue"><B>'+cellvalue+'</B></span>';
   else
   {
      return '<span style="color:red"><B>'+cellvalue+'<B></span>';
   }
 }

 function remarksFormatter(cellvalue, options, rowObject) {  
      return '<B>'+cellvalue+'<B>';
 }

 $(function(){
     getColumnIndexByName = function (grid, columnName) {
         var cm = grid.jqGrid('getGridParam', 'colModel'), i, l = cm.length;
         for (i = 0; i < l; i++) {
             if (cm[i].name === columnName) {
                 return i; // return the index
             }
         }
         return -1;
     }
});





   function clearResults() {
        //debugger;
        //failcount = 0;
        //totalcount = 0;
          $('form').submit(function (e) {
              e.preventDefault();
          });

          var selIds = jQuery("#jqg_calltest").jqGrid('getGridParam', 'selarrrow');
          if (selIds.length <= 0) {
              alert("Please select atleast one row!!!!");
              return;
           } 
          else{
             var strdata ='';
             var strclearCols = '';
               for(var i = 0; i < selIds.length; i++){
                var rowData =jQuery("#jqg_calltest").jqGrid("getRowData", selIds[i]);

                   strdata = strdata +rowData.devid+"&";
                   strdata = strdata + rowData.imei+"&";
                   strdata = strdata + "calltest"+"&";
                   strdata = strdata + ",";
               }
               var clearClomns  = $('#clearRes').val();
              // alert(clearClomns);
               if(clearClomns == null){
                   alert("Please select at least one item from clear results dropdown!!!!");
                   return;
               }else{
                   for(var i = 0; i < clearClomns.length; i++){
                       strclearCols = strclearCols + clearClomns[i]+",";
                   }
               }
            $.ajax({
                type: "POST",
                url: "ClearResults",
                dataType:"json",
                data:{
                    clearRemarksData: strdata,
                    clearFieldsData : strclearCols
                },

                success: function(response, textStatus, jqXHR) {
                    // display an success message if needed
                    alert("Cleared Results Successfully");
                    //$("#clearRes").multiselect('refresh');
                    $("#clearRes option:selected").prop("selected", false);
                    $("#clearRes").multiselect('refresh');
                    $('#jqg_calltest').jqGrid('setGridParam', {datatype : 'json'}).trigger('reloadGrid', [{current:true}]);
                },
                error: function(jqXHR, textStatus, errorThrown) {
                    // display an error message in any way
                    alert("ERROR Clearing Results!!!!");
                    $('#jqg_calltest').jqGrid('setGridParam', {datatype : 'json'}).trigger('reloadGrid', [{current:true}]);
                }
            });
          }
       };



$(function () {

    $('#clearRes').multiselect({ 
         includeSelectAllOption: true,
         // enableFiltering:true,
         // buttonClass: 'btn btn-default',
         nonSelectedText: 'Clear Results',
         /*  templates: {
             button: '<span class="dropdown-menu dropdown-menu-right" data-toggle="dropdown">Clear Results</span>'
         }  */

      });

    }); 

    </script>
  </head>
<body>

<table id="jqg_calltest">
      <tr>
           <td />
      </tr>
    </table>
    <div id="jqg_calltestpager"></div>
    <br/>

    <select id="clearRes" multiple="multiple" >
        <option value="ReceivedGCMStatus">Clear Request Recvd.</option>
        <option value="DeviceStatus">Clear Device Status</option>
        <option value="Remarks">Clear Remarks</option>
    </select>

       <input type="submit" value="Clear" class="btn btn-primary"  onclick="clearResults()"/>
      <input type="hidden" value="overview" id="sec"/>

     </body>
</html>

0 个答案:

没有答案