其实最近写的最多的还是js和jq

1.在td上添加一个id
<td align="center" width="68px" id="tdre_payed_money">已付</td>
2.点击保存时
//月结选中和回执份数不能同时存在
  if($re_month.attr("checked")==true && parseInt($re_return_receive.val())>0){
   alert("月结和回执份数不能同时存在!");
   return false;
  }
  //如果月结是选中已付 变成月结付 回执份数>0回单付 否则还是已付
  if($re_month.attr("checked")==true){
   $("#tdre_payed_money").html("月结付");
  }else if(parseInt($re_return_receive.val())>0){
   $("#tdre_payed_money").html("回单付");
  }else{
   $("#tdre_payed_money").html("已付");
  }
  canSubmit=false;
注意写在canSubmit=false;之前否则只能save一次即使错误
----------------end---------------------------------
货物跟踪查询
1.点击货物编号 弹出页
{field:'re_goods_code',title:'货物编号',200,align:'left',
        formatter:function(val,rec){
         if(rec.re_authorize_code != "" && rec.re_authorize_code != null){
          return "<a href='javascript:void(0);' style='color:white;' onClick='linkQueryPage(\"" + val + "\")'>&nbsp;&nbsp;"+ val +"</a>";
         }
         else{
          return "<a href='javascript:void(0);' onClick='linkQueryPage(\"" + val + "\")'>&nbsp;&nbsp;"+ val +"</a>";
         }
         
        }
       },
       
       /**
 * 货物跟踪弹出层
 */
function linkQueryPage(goodsCode)
{
    $.layer({
     type: 2,
     title: false,
     fix: false,
     closeBtn: false,
     shadeClose: true,
     shade: [0.1,'#fff', true],
     border : [5, 0.3, '#666', true],
     offset: ['80px',''],
     area: ['950px','600px'],
     iframe: {src: 'reGoodsTrack!selectReceiveDiv.action?re_goods_code='+ goodsCode}
    });
}
2.在action中
/**
  * 货物跟踪查询弹出层
  * @return
  */
 public String selectReceiveDiv(){
  re=reGoodsTrackService.selectGoods(re_goods_code.trim(), re_old_code,re_receive_code);
  return "success_div";
 }
 得到re结果集
3.页面默认得到re结果集
<input type="hidden" id="re_receive_code" name="re_receive_code" value="${re.re_receive_code}"/>
    <table width="100%" border="0" cellspacing="3" cellpadding="0">
     <tr>
      <td bgcolor="#9ABACF">
       <table width="100%" border="0" align="center" cellpadding="3" cellspacing="1">
        <tr>
         <td width="14%" height="20" align="right" bgcolor="#F9FAFC">收货机构&nbsp;&nbsp;</td>
         <td width="36%" align="left" bgcolor="#FFFFFF">&nbsp;&nbsp;${re.re_group_code}</td>
         <td width="15%" align="right" bgcolor="#F9FAFC">到货机构&nbsp;&nbsp;</td>
         <td width="35%" align="left" bgcolor="#FFFFFF">&nbsp;&nbsp;${re.re_targetgroup_code}</td>
        </tr>
        <tr>
         <td height="20" align="right" bgcolor="#F9FAFC">目的地&nbsp;&nbsp;</td>
         <td align="left" bgcolor="#FFFFFF">&nbsp;&nbsp;${re.re_arrive_name}</td>
         <td align="right" bgcolor="#F9FAFC">客户单号&nbsp;&nbsp;</td>
         <td align="left" bgcolor="#FFFFFF">&nbsp;&nbsp;${re.re_client_code}</td>
        </tr>
        给id为re_receive_code的隐藏域赋值
4.在jq中
// 初始化数据列表
 $('#reData').datagrid(
   {
    width : (widthValue),
    height : (heightValue),
    fitColumns : false,
    remoteSort : false,
    autoRowHeight : false,
    url : "reGoodsTrack!selectDIV",
    queryParams:{'re_receive_code':$("#re_receive_code").val()},
    loadMsg : "数据加载中,请稍等...",
    striped : true,
    columns : [ [ {
     field : 'log_group_code',
     title : '操作机构',
     width : 100,
     align : 'left',
     formatter : function(val, rec) {
      return "&nbsp;&nbsp;" + val;
     }
    }, {
     field : 'log_date',
     title : '操作时间',
     width : 150,
     align : 'center',
     formatter : function(val, rec) {
      return "&nbsp;&nbsp;" + val;
     }
    }, {
     field : 'log_goods_code',
     title : '货物编号',
     width : 150,
     align : 'left',
     formatter : function(val, rec) {
      return "&nbsp;&nbsp;" + val;
     }
    }, {
     field : 'log_optype',
     title : '操作类型',
     width : 120,
     align : 'left',
     formatter : function(val, rec) {
      return "&nbsp;&nbsp;" + val;
     }
    }, {
     field : 'log_content',
     title : '内容',
     width : 580,
     align : 'left',
     formatter : function(val, rec) {
      return "&nbsp;"+val + "&nbsp;";
     }
    } ] ]
   });
   将隐藏域值取出赋给查询条件
   
5.action中
public String selectDIV(){
  //把re_receive_code设置到页面隐藏域中,通过jq赋值给属性
  if(re_receive_code!=null && re_receive_code!=""){
   Log log = new Log();
   log.setLog_receive_code(re_receive_code);
   jsonObject = reGoodsTrackService.selectLog(log);
  }
  return "jsonObject";
 }查询出日志信息。
 --------------end---------------------------------
datagrid两种赋值方式另一种详解
提货改到货
1.jsp这边存在隐藏域提交保存查询出来的数据,为提交数据做准备
<input type="hidden" id="re_receive_code" name="re_receive_code" />
<input type="hidden" id="re_pickup_date" name="re_pickup_date" />
<input type="hidden" id="rt_state" name="rt_state" />
<input type="hidden" id="re_goods_code" name="re_goods_code" />
top部分为label标签
<tr>
 <td width="14%" height="20" align="right" bgcolor="#F9FAFC">收货机构&nbsp;&nbsp;</td>
 <td width="36%" align="left" bgcolor="#FFFFFF">&nbsp;&nbsp;<label id="re_group_code"></label></td>
 <td width="15%" align="right" bgcolor="#F9FAFC">到货机构&nbsp;&nbsp;</td>
 <td width="35%" align="left" bgcolor="#FFFFFF">&nbsp;&nbsp;<label id="re_targetgroup_code"></label></td>
</tr>
<tr>
 <td height="20" align="right" bgcolor="#F9FAFC">目的地&nbsp;&nbsp;</td>
 <td align="left" bgcolor="#FFFFFF">&nbsp;&nbsp;<label id="re_arrive_name"></label></td>
 <td align="right" bgcolor="#F9FAFC">客户单号&nbsp;&nbsp;</td>
 <td align="left" bgcolor="#FFFFFF">&nbsp;&nbsp;<label id="re_client_code"></label></td>
</tr>
下面为普通的grid
<tr style="height: 37%">
   <td style="height: 37%;">
    <table id="reData"></table>
   </td>
     </tr>
2.js页面点击查询,是datagrid的另一种加载数据方式如下:
同样存在查询参数和判断条件如下
if($.trim($("#query_goods_code").val()) == "" && $.trim($("#query_old_code").val()) == "" ) {
        $.messager.alert('提示信息','货物编号、流水号不能全为空!','error');
        return false;
       }
          //查询参数
          var queryParams = {
            'query_goods_code':$("#query_goods_code").val(),
            'query_old_code':$("#query_old_code").val(),
            'time':new Date()
          };
         重点是 $('#reData').datagrid('loadData',data.logs);这种方式。
   $.ajax({
           url:"puQuerypage!query",
           type:"get",
           data:queryParams,
           dataType:"json",
           async:false,
           cache:false,
           error: function(request){
             $.messager.alert('提示信息','Connection error','error');
             return false;
           },
           success:function (data,status){
            if(data.saveMessage == "2"){
          $.messager.alert('提示信息','提货后做过改运费的票子不能做此操作!','error');
          return false;
         }else if(data.saveMessage == "3"){
          $.messager.alert('提示信息','无数据或者转出票不能做此操作!','error');
          return false;
         }else {
              $('#reData').datagrid('loadData',data.logs);
              if (data.sumInfo.re_receive_code != null
             && data.sumInfo.re_receive_code != "") {
               //给隐藏域赋值,点击提交使用
               $("#re_receive_code").val(data.sumInfo.re_receive_code);
            $("#re_pickup_date").val(data.sumInfo.re_pickup_date);
            $("#rt_state").val(data.sumInfo.rt_state);
            $("#re_goods_code").val(data.sumInfo.re_goods_code);
            //得到服务器当前时间赋值给页面隐藏域,点击提交使用
            $("#sysDate").val(data.sysDate);
            //end
            $("#re_group_code").text(data.sumInfo.re_group_code);
            $("#re_targetgroup_code").text(data.sumInfo.re_targetgroup_code);
            $("#re_arrive_name").text(data.sumInfo.re_arrive_name);
            $("#re_client_code").text(data.sumInfo.re_client_code);
            $("#re_goods_name").text(data.sumInfo.re_goods_name);
            $("#re_goods_count").text(data.sumInfo.re_goods_count);
            $("#re_goods_codeL").text(data.sumInfo.re_goods_code);
            $("#re_old_code").text(data.sumInfo.re_old_code);
            $("#re_type").text(data.sumInfo.re_type);
            $("#re_get_type").text(data.sumInfo.re_get_type);
            $("#re_send_man").text(data.sumInfo.re_send_man);
            $("#re_send_tel").text(data.sumInfo.re_send_tel);
            $("#re_receive_man").text(data.sumInfo.re_receive_man);
            $("#re_receive_tel").text(data.sumInfo.re_receive_tel);
            $("#re_standard_count").text(data.sumInfo.re_standard_count);
            $("#re_weight").text(data.sumInfo.re_weight);
            $("#re_volume").text(data.sumInfo.re_volume);
            $("#re_pickupfee").text(data.sumInfo.re_pickupfee);
            $("#re_return_receive").text(data.sumInfo.re_return_receive);
            $("#re_songhuofei").text(data.sumInfo.re_songhuofei);
            $("#re_payed_money").text(data.sumInfo.re_payed_money);
            $("#re_arrive_pay").text(data.sumInfo.re_arrive_pay);
            $("#re_mat_traffic").text(data.sumInfo.re_mat_traffic);
            $("#re_insure_account").text(data.sumInfo.re_insure_account);
            $("#re_gets_goods").text(data.sumInfo.re_gets_goods);
            $("#re_insure_money").text(data.sumInfo.re_insure_money);
            $("#re_remark").text(data.sumInfo.re_remark);
          }
            }
           }
          });  
3.注意我们看action页面
public String query(){
  jsonMap = new HashMap<String, Object>();
  if(puQuerypage == null) {
   puQuerypage = new PuQuerypage();
  }
  
  sysDate = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
  
  puQuerypage.setQuery_goods_code(query_goods_code.trim());
  puQuerypage.setQuery_old_code(query_old_code.trim());
  puQuerypage = puQuerypageService.query(puQuerypage);
  
  if(puQuerypage!=null){
   List<String> list = puQuerypageService.queryCheckMm(puQuerypage.getRe_receive_code()+"");
   if(list!=null&&list.size()>0){
    puQuerypage = null;
    jsonMap.put("saveMessage", "2");
    //request.setAttribute("tipMessage", "提货后做过改运费的票子不能做此操作!");
   }else{
    Log log = new Log();
    log.setLog_receive_code(Long.toString(puQuerypage.getRe_receive_code()));
    logs = puQuerypageService.selectLog(log);
   }
   
  }
  else{
   jsonMap.put("saveMessage", "3");
   //request.setAttribute("tipMessage", "转出票不能做此操作!");
  }
  jsonMap.put("sumInfo", puQuerypage);
  jsonMap.put("logs", logs);
  jsonMap.put("sysDate", sysDate);
  jsonObject = JSONObject.fromObject(jsonMap);
  return "jsonObject";
 }
 json中存在label要用的数据sumInfo,datagrid要用的数据是logs,sysDate是提交要用的数据注意保存在隐藏域中
4.一个是服务器时间,另一个是数据库表中字段时间是如何比较呢?
我们看到是拿到前端js中比较的
 $("#rt_state").val(data.sumInfo.rt_state);
 //得到服务器当前时间赋值给页面隐藏域,点击提交使用
 $("#sysDate").val(data.sysDate);
 提交比较部分:
 var sysDate = $("#sysDate").val();
    var state = $("#rt_state").val();
  var arr1 = sysDate.split('-');
 var nowdate = new Date(arr1[0], arr1[1], arr1[2]);

 var arr  = pdate.split('-');
 var comdate = new Date(arr[0], arr[1], arr[2]);
 
 if(nowdate.getTime() != comdate.getTime()) {
  $.messager.alert('提示信息','只能对当天提货数据进行该操作!','error');
  return false;
 }
 --------------end---------------------------------

原文地址:https://www.cnblogs.com/pond/p/5576486.html