jqgard改变单元格后重新定值(事件和弹窗)

<script type="text/javascript">
  var edit_row = 0;
  var edit_col = 0;
  var row_id = 0;
  var col_name = 0;
  $(document).ready(function () {

    var col2 = '<span class="red">*</span>仓库';
   
    $("#grid").jqGrid({

      datatype: "local",//数据来源,本地数据(local,json,jsonp,xml等)
      height: '90%',//高度,表格高度。可为数值、百分比或'auto'
      colNames: ['操作', col2, '商品备注',],
      colModel: [
      {
          name: 'shuliang',  100, editable: true, editoptions: {
            size: 25,
            dataEvents: [
              {
                type: 'change',     //blur,focus,change............. //事件重新赋值
                fn: function (e) {
                  reload_val();
                }
              }
            ]
          }
        },
    
      {
        name: "ck1",
         100,
        link: "inventory",
        editable: true,
        edittype: "custom",
        editoptions: {
        custom_element: function (t, e) {
          $("#p_ck1").html('<div class="pr" id="ck1"><input type="text" class="textbox storageAuto customelement ui-combo-active" name="locationName" autocomplete="off" id="1_locationName" style="outline: -webkit-focus-ring-color auto 5px;"><span class="ui-icon-triangle-1-s"></span></div>');
          return $("#ck1");
        },
        custom_value: function (t, e, a) {
          var ba = $("#ck1name").val();//弹窗赋值
          return ba;
        },

        trigger: "ui-icon-triangle-1-s"
      }
      },

    { name: '',  70, formatter: cLink ,align:"center"},



      ],

      cellEdit: true,
      cellurl: '/',
      rowNum: 10,
      rowList: [10, 20, 30],
      sortname: 'id',
      sortorder: "desc",
      pagerpos: "left",//分页位置
      rownumbers:true,
      pgbuttons: true,//翻页按钮
      pagination: true,
      altRows: !0,
      gridview: !0,
      shrinkToFit: !1,
      cellLayout: 8,
      auto !0,
      pager: "#page",
      viewrecords: !0,
      cmTemplate: {
        sortable: !1,
        title: !1
      },
      loadError: function (t, e, i) {
       
          alert("操作失败了哦,请检查您的网络链接!");
      },
      beforeEditCell: function (rowid, cellname, value, iRow, iCol) {
        col_name = cellname;
        edit_row = iRow;
        edit_col = iCol;
        row_id = rowid;
        var gname = $("#grid").jqGrid("getCell", row_id, 'goodsname');
        $("#goodsname").val(gname);

       
      },
      // 合计
      footerrow: true,
      gridComplete: function () {
        var shuliangs = parseFloat($("#grid").getCol('shuliang', false, 'sum')).toFixed(2);
        $("#yh_price").val(total_prices);
        $("#grid").footerData('set', { "goodsname": '合计', shuliang: shuliangs});
      },
    });

    var mydata = [];
    for (var i = 0; i < 5; i++) {
      var obj = { id: i + 1, goodsname: "", goodstype: "", goodsmark: "", dw: "", shuliang: "", ck1: "", ck2: "", ck3: "", mark: "", goodsid: "0", ck1_id: "0", ck2_id: "0" }
      mydata.push(obj);
    }
    for (var i = 0; i <= mydata.length; i++) {
      jQuery("#grid").jqGrid('addRowData', i + 1, mydata[i]);
    }


    //增加、删除按钮
    function cLink(cellvalue, options, rowObject) {
      return '<div class="operating"><span class="ui-icon ui-icon-plus" title="新增行" onclick="add_row(' + options.rowId + ')" style="margin:0 2px;"></span> <span class="ui-icon ui-icon-trash" onclick="del_row(' + options.rowId + ')" title="删除行" style="margin:0 2px;">删除</span></div>';
    }



    // 选择仓库弹窗
    $(".grid-wrap").on("click", ".ui-icon-triangle-1-s", function (e) {
      var top = $(this).offset().top;
      var left = $(this).offset().left;
      $("#chooseBatch").show();
      $("#chooseBatch").css({ "top": (top + 22) + "px", "left": (left - 78) + "px" })
    })
    // 仓库选择鼠标移入移出
    $(".ui-droplist-wrap .droplist .list-item").hover(function () {
      $(this).addClass("on");
    }, function () {
      $(this).removeClass("on");
    })

    $("#chooseBatch .droplist").on("click", ".list-item", function (e) {
      var title = $(this).attr("title");
      //仓库1
      if (col_name == "ck1") {
        var ck1_id = $(this).attr("ck_id");
        $("#ck1name").val(title);
        $("#grid").jqGrid("setCell", row_id, 'ck1_id', ck1_id);
        $("#grid").jqGrid("setCell", row_id, 'ck3', 1000);//库存
        $("#grid").jqGrid("setCell", row_id, 'ck1', title);//及时保存
      }

      $("#grid").saveRow(row_id, false);
      $("#chooseBatch").hide();

    });

  });



</script>


function reload_val() {
    var rid = row_id;
    var c_name = col_name;

    var $shuliang = parseInt($("#grid").jqGrid("getCell", rid, 'shuliang'));//数量
    var $price = parseFloat($("#grid").jqGrid("getCell", rid, 'price'));//单价

    var $tax_lv = parseFloat($("#grid").jqGrid("getCell", rid, 'tax_lv'));//税率
    var $tax_lv1 = 100 + $tax_lv;

    var $zk_lv = parseFloat($("#grid").jqGrid("getCell", rid, 'zk_lv'));//折扣率
    var $zk_lv1 = 100 - $zk_lv;

     

    if (c_name == "shuliang") {
    //改变数量
    $("#grid").jqGrid("setCell", rid, 'base_shuliang', $shuliang);
    $("#grid").jqGrid("setCell", rid, 'jine', $price * $zk_lv1 / 100 * $shuliang);//金额--折后单价乘数量

    } else if (c_name == "price") {
      
    }


    // 合计的变量


    var shuliangs = $("#grid").getCol('shuliang', false, 'sum');

    $("#before_yh_price").val(total_prices);
    $("#grid").footerData('set', { "goodsname": '合计', shuliang: shuliangs, base_shuliang: base_shuliangs, zk_e: zk_es, jine: jines, tax_e: tax_es, total_price: total_prices });
}
原文地址:https://www.cnblogs.com/zhangyouwu/p/15397258.html