阅读:9904
回复:20
|
SheetGridView JS赋值之后合计金额为0,怎么才能正常显示合计金额
JS代码
function GetYjkbje() { var bm = $.MvcSheetUI.GetControlValue("bm");//编号 //清空项目明细表数据 var len = $("table[data-datafield='ywfyjs_xmmx']").find(".rows").length; for (var w = len; w >= 0 ; w--) { $("table[data-datafield='ywfyjs_xmmx']").find("a.delete:eq('" + w + "')").click(); } if (bm != "") { $.MvcSheet.Action({ Action: "GetYjkbje", // 后台方法名称 Datas: [bm], // 输入参数,格式 ["{数据项名称}","String值","控件ID"],当包含数据项名称时 LoadControlValue必须为true LoadControlValue: true, // 是否获取表单数据 PostSheetInfo: true, // 是否获取已经改变的表单数据 Async: false, OnActionDone: function (e) { var rJson = eval('(' + e + ')'); var dtl = $.MvcSheetUI.GetElement("ywfyjs_xmmx").SheetGridView(); for (var i = 0; i < rJson.length; i++) { //$("a[id*='Add_ywfyjs_xmmx']").click(); dtl._AddRow(); var jsonObj = rJson; $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.dw", jsonObj.unitname, i+1); $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.xspq", jsonObj.xspq, i+1); $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.xmmc", jsonObj.xmmc, i+1); $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.khmc", jsonObj.khmc, i+1); $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.dkbl", jsonObj.dkbl, i+1); $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.ysye", parseFloat(jsonObj.balanceamt), i + 1); $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.qtywfyye", parseFloat(jsonObj.qtywfyye), i + 1); $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.dlywfyye", parseFloat(jsonObj.qzcj), i + 1); $.MvcSheetUI.SetControlValue("ywfyjs_xmmx.yjkbje", parseFloat(jsonObj.yjkbje), i + 1); } }, PostSheetInfo: true // 是否提交表单数据,如果 false,那么不返回表单的数据 }); } else { alert("销售人员编号不能为空!"); } } 合计显示为0 图片:STK截图20171114135539.png ![]() @岩竹玉雨@武汉技术支持团队@开始懂了@t156965365@越王勾践 |
最新喜欢:![]() |
1楼#
发布于:2017-11-14 14:07
|
|
2楼#
发布于:2017-11-14 14:40
|
|
3楼#
发布于:2017-11-14 17:15
页面也贴出来啊
手输能不能汇总,还是只有SetControlValue的时候不汇总? |
|
4楼#
发布于:2017-11-15 08:29
|
|
5楼#
发布于:2017-11-15 10:09
测试了下你那段js代码,在有多行且原汇总为0的情况下,有一定几率出现汇总为0的情况。
看了下变化,先是有汇总值,然后又被清零,可能跟赋值先后有关,没时间去仔细调试。 建议你修改一下写法,下面两种二选一。 1 如果纯前台操作,就把Action的方法改成Ajax的方式,全部在前台搞定 2 既然你已经调用后台,那就不要用SetControlValue再前台赋值,直接在后台方法里面操作InstanceData。 PostSheetInfo: true, // 是否获取已经改变的表单数据 这个参数会获取你在后台修改过的明细。 |
|
6楼#
发布于:2017-11-15 14:40
TAn:测试了下你那段js代码,在有多行且原汇总为0的情况下,有一定几率出现汇总为0的情况。按钮 <button type="button" onclick="SetValue();">赋值</button> 前台 JS function SetValue(){ $.MvcSheet.Action( { Action: "SetValue", // 后台方法名称 Datas: [""], // 输入参数,格式 ["{数据项名称}","String值","控件ID"],当包含数据项名称时 LoadControlValue必须为true LoadControlValue: true, // 是否获取表单数据 PostSheetInfo: true, // 是否获取已经改变的表单数据 OnActionDone: function (e) { // 执行完成后回调事件 alert("成功!"); } }); } 后台代码 public string SetValue(){ BizObject[] bizObjects = new BizObject[2]; BizObjectSchema childSchema = this.ActionContext.Schema.GetProperty("a1").ChildSchema; bizObjects[0] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID); bizObjects[0]["b1"] = "1"; bizObjects[0]["b2"] = "1"; bizObjects[1] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID); bizObjects[1]["b1"] = "2"; bizObjects[1]["b2"] = "2"; this.ActionContext.InstanceData["a1"].Value = bizObjects; this.ActionContext.InstanceData.Submit(); return "{\"IsSuccess\":true}"; } 不写在加载界面,为什么获取不到数据; |
|
7楼#
发布于:2017-11-15 16:33
|
|
8楼#
发布于:2017-11-16 08:50
|
|
9楼#
发布于:2017-11-16 08:52
TAn:不要用button,点了会回发,导致多次刷新。按你说的修改了,前台界面还是没有获取到数据啊。。 前台页面 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="S0621.aspx.cs" Inherits="OThinker.H3.Portal.Sheets.DefaultEngine.S0621" EnableEventValidation="false" MasterPageFile="~/MvcSheet.master" %> <%@ OutputCache Duration="999999" VaryByParam="T" VaryByCustom="browser" %> <asp:Content ID="head" ContentPlaceHolderID="headContent" runat="Server"> <script type="text/javascript"> function SetValue(){ $.MvcSheet.Action( { Action: "SetValue", // 后台方法名称 Datas: [""], // 输入参数,格式 ["{数据项名称}","String值","控件ID"],当包含数据项名称时 LoadControlValue必须为true LoadControlValue: true, // 是否获取表单数据 PostSheetInfo: true, // 是否获取已经改变的表单数据 OnActionDone: function (e) { alert(e); // 执行完成后回调事件 alert("成功!"); } }); } </script> </asp:Content> <asp:Content ID="menu" ContentPlaceHolderID="cphMenu" runat="Server"> </asp:Content> <asp:Content ID="master" ContentPlaceHolderID="masterContent" runat="Server"> <div style="text-align: center;" class="DragContainer"> <label id="lblTitle" class="panel-title">2</label> </div> <div class="panel-body sheetContainer"> <div class="nav-icon fa fa-chevron-right bannerTitle"> <label id="divBasicInfo" data-en_us="Basic information">基本信息</label> </div> <div class="divContent"> <div class="row"> <div id="divFullNameTitle" class="col-md-2"> <label id="lblFullNameTitle" data-type="SheetLabel" data-datafield="Originator.UserName" data-en_us="Originator" data-bindtype="OnlyVisiable" style="">发起人</label> </div> <div id="divFullName" class="col-md-4"> <label id="lblFullName" data-type="SheetLabel" data-datafield="Originator.UserName" data-bindtype="OnlyData" style=""></label> </div> <div id="divOriginateDateTitle" class="col-md-2"> <label id="lblOriginateDateTitle" data-type="SheetLabel" data-datafield="OriginateDate" data-en_us="Originate Date" data-bindtype="OnlyVisiable" style="">发起时间</label> </div> <div id="divOriginateDate" class="col-md-4"> <label id="lblOriginateDate" data-type="SheetLabel" data-datafield="OriginateDate" data-bindtype="OnlyData" style=""></label> </div> </div> <div class="row"> <div id="divOriginateOUNameTitle" class="col-md-2"> <label id="lblOriginateOUNameTitle" data-type="SheetLabel" data-datafield="Originator.OUName" data-en_us="Originate OUName" data-bindtype="OnlyVisiable" style="">所属组织</label> </div> <div id="divOriginateOUName" class="col-md-4"> <label id="lblOriginateOUName" data-type="SheetLabel" data-datafield="Originator.OUName" data-bindtype="OnlyData" style=""></label> </div> <div id="divSequenceNoTitle" class="col-md-2"> <label id="lblSequenceNoTitle" data-type="SheetLabel" data-datafield="SequenceNo" data-en_us="SequenceNo" data-bindtype="OnlyVisiable" style="">流水号</label> </div> <div id="divSequenceNo" class="col-md-4"> <label id="lblSequenceNo" data-type="SheetLabel" data-datafield="SequenceNo" data-bindtype="OnlyData" style=""></label> </div> </div> </div> <div class="nav-icon fa fa-chevron-right bannerTitle"> <label id="divSheetInfo" data-en_us="Sheet information">表单信息</label> </div> <div id="ctl00_BodyContent_divSheet" class="divContent"> <div class="row"> <div id="title1" class="col-md-2"> <span id="Label11" data-type="SheetLabel" data-datafield="a2" style="">a2</span> </div> <div id="control1" class="col-md-4"> <input id="Control11" type="text" data-datafield="a2" data-type="SheetTextBox" class="" style=""> </div> <div id="space2" class="col-md-2"> <a class="btn" onclick="SetValue();">赋值</a> </div> <div id="spaceControl2" class="col-md-4"> </div> </div> <div class="row tableContent"> <div id="title3" class="col-md-2"> <span id="Label12" data-type="SheetLabel" data-datafield="a1" style="">a1</span> </div> <div id="control3" class="col-md-10"> <table id="Control12" data-datafield="a1" data-type="SheetGridView" class="SheetGridView"> <tbody> <tr class="header"> <td id="Control12_SerialNo" class="rowSerialNo"> 序号 </td> <td id="Control12_Header3" data-datafield="a1.b1"> <label id="Control12_Label3" data-datafield="a1.b1" data-type="SheetLabel" style="">b1</label> </td> <td id="Control12_Header4" data-datafield="a1.b2" class=""> <label id="Control12_Label4" data-datafield="a1.b2" data-type="SheetLabel" style="">b2</label> </td> <td class="rowOption"> 删除 </td> </tr> <tr class="template"> <td id="Control12_Option" class="rowOption"> </td> <td data-datafield="a1.b1"> <input id="Control12_ctl3" type="text" data-datafield="a1.b1" data-type="SheetTextBox" style=""> </td> <td data-datafield="a1.b2"> <input id="Control12_ctl4" type="text" data-datafield="a1.b2" data-type="SheetTextBox" style="" class=""> </td> <td class="rowOption"> <a class="delete"> <div class="fa fa-minus"> </div> </a> <a class="insert"> <div class="fa fa-arrow-down"> </div> </a> </td> </tr> <tr class="footer"> <td class="rowOption"> </td> <td data-datafield="a1.b1"> <label id="Control12_stat3" data-datafield="a1.b1" data-type="SheetCountLabel" style="" class=""></label> </td> <td data-datafield="a1.b2"> <label id="Control12_stat4" data-datafield="a1.b2" data-type="SheetCountLabel" style="" class=""></label> </td> <td class="rowOption"> </td> </tr> </tbody> </table> </div> </div> </div> </div> </asp:Content> 后台代码 using OThinker.Data.Database; using OThinker.H3.DataModel; using OThinker.H3.WorkSheet; using System; using System.Data; using System.Text; using System.Web.UI.WebControls; namespace OThinker.H3.Portal.Sheets.DefaultEngine { public partial class S0621 : OThinker.H3.WorkSheet.MvcPage { protected void Page_Load(object sender, EventArgs e) { } public string SetValue() { BizObject[] bizObjects = new BizObject[2]; BizObjectSchema childSchema = this.ActionContext.Schema.GetProperty("a1").ChildSchema; bizObjects[0] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID); bizObjects[0]["b1"] = "1"; bizObjects[0]["b2"] = "1"; bizObjects[1] = new BizObject(this.ActionContext.Engine, childSchema, this.ActionContext.User.UserID); bizObjects[1]["b1"] = "2"; bizObjects[1]["b2"] = "2"; this.ActionContext.InstanceData["a1"].Value = bizObjects; this.ActionContext.InstanceData.Submit(); return "{\"IsSuccess\":true}"; } } } |
|
上一页
下一页