- 注册时间
- 2016-2-17
- 最后登录
- 2023-10-19
- 阅读权限
- 10
- 积分
- 942
- 精华
- 0
- 帖子
- 127
|
felt 发表于 2016-3-1 17:11
如果有问题,请提供重现html,光看你的文字,我无法了解
<body>
<table align="center" style="width:98%;" cellspacing="13px" class="tabtd">
<tr>
<td width="25%" align="right">保险公司</td>
<td width="50%" align="left">
<div id="companyName" name="companyName" class="mini-combobox" style="width:40%;" popupWidth="160" textField="COMPANYNAME" valueField="COMPANYNAME" url="khdwxxsbtcxzgs.action" multiSelect="false" showClose="true" onvaluechanged="getValues" required="true">
<div property="columns">
<div header="保险公司名称" field="COMPANYNAME"></div>
</div>
</div></td>
</tr>
</table>
<div id="sbtxmxGrid" onlyCheckSelection="true" class="mini-datagrid" url="khdwxxsbtcxzgsmx.action" style="width: 99%;height: 80%;" idField="sid" allowCellEdit="true" allowCellSelect="true" onselect="updateTotal" multiSelect="true" showPager="false" editNextOnEnterKey="true" ondeselect="updateTotal" oncellbeginedit="OnCellBeginEdit" editNextRowCell="true">
<div property="columns">
<div type="indexcolumn" width="5%"></div>
<div type="checkcolumn" width="5%" select="alert('1')"> </div>
<div name="bxbh" field="bxbh" headerAlign="center" width="10%">保险编号</div>
<div name="sid" field="sid" headerAlign="center" width="10%">SID</div>
<div name="bxmc" field="bxmc" headerAlign="center" width="25%">保险名称</div>
<div name="bfe" field="bfe" headerAlign="center" width="12%">价格(元 / 份)</div>
<div name="num" field="num" id="num" headerAlign="center" width="10%" displayField="num">
份数 <input property="editor" class="mini-combobox" required="true" style="width:100%;" valueField="id" textField="text" />
</div>
<div name="bxsm" field="bxsm" headerAlign="center" width="40%">保险说明</div>
</div>
</div>
<table align="center" style="width:98%;" cellspacing="13px" class="tabtd">
<tr>
<td width="25%" align="left">总计:   <input id="zje" name="zje" class="mini-textbox" readonly width="40%" value="0" /> (元)</td>
</tr>
</table>
</body>
<script>
mini.parse();
var sbtxmxGrid = mini.get('sbtxmxGrid');
var companyName = mini.get('companyName');
sbtxmxGrid.load();
// 按照选择的单位重置grid数据
function getValues() {
sbtxmxGrid.load({
companyName : companyName.getValue(),
});
}
// 获得商保套餐明细grid对象
function getSbtcmxGridData() {
return mini.get('sbtxmxGrid').getData();
}
// 获得总金额
function getZjeData() {
return mini.get('zje').getValue();
}
//获得主键
function getSid() {
var k = mini.get('sbtxmxGrid').getSelecteds().length;
var m = "";
for (i = 0; i < k; i++) {
m = m + mini.get('sbtxmxGrid').getSelecteds().sid + ";";
}
return m;
}
//获得份数
function getFs() {
var k = mini.get('sbtxmxGrid').getSelecteds().length;
var m = "";
for (i = 0; i < k; i++) {
m = m + mini.get('sbtxmxGrid').getSelecteds().num + ";";
}
return m;
}
//获得商保编号及其份数组合
function getInsuranceDetail() {
var k = mini.get('sbtxmxGrid').getSelecteds().length;
var m = "";
for (i = 0; i < k; i++) {
m = m + mini.get('sbtxmxGrid').getSelecteds().bxbh + "*"
+ mini.get('sbtxmxGrid').getSelecteds().num + ";";
}
return m;
}
//获得保险公司名
function getCompanyName() {
return mini.get('companyName').getValue();
}
// 初始化商保套餐明细grid对象Data
function setSbtcmxGridData(sgrd) {
if (sgrd.sid != null) {
//跨页面传递的数据对象,克隆后才可以安全使用
var data = mini.clone(sgrd);
mini.get('companyName').setValue(data.gs);
var arrSid = new Array();
arrSid = data.sid.split(";");
var arrNum = new Array();
arrNum = data.num.split(";");
sbtxmxGrid.load({
companyName : companyName.getValue()
}, function() {
var rows = mini.get('sbtxmxGrid').getData();
for (j = 0; j < rows.length; j++) {
for (k = 0; k < arrSid.length - 1; k++) {
if (rows[j].sid == arrSid[k]) {
//alert(arrNum[k]);//测试
rows[j].num = arrNum[k];
sbtxmxGrid.select(rows[j]);
}
}
}
});
}
}
// 更新总金额
function updateTotal() {
var total = 0;
mini.get('sbtxmxGrid').commitEdit();
var rows = mini.get('sbtxmxGrid').getSelecteds();
for ( var i = 0; i < rows.length; i++) {
var row = rows;
if (rows.num == null) {
mini.alert("请先设置所选保险份数!");
deselect(rows);
}
total = total + row.bfe * row.num;
}
mini.get('zje').setValue(total);
}
//编辑前发生 动态添加下拉菜单数据
function OnCellBeginEdit(e) {
var grid = e.sender;
var record = e.record;
var field = e.field, value = e.value;
var editor = e.editor;
//份数
if (field == "num") {
var tempDataAll = "[";
var tempData;
var id = record.kxfs;
if (id) {
var arr = new Array();
arr = id.split(",");
var i;
for (i = 0; i < arr.length; i++) {
tempData = "{id:'" + arr + "',text:'" + arr + "'}";
tempDataAll = tempDataAll + tempData + ",";
}
if (tempDataAll.lastIndexOf(",") == -1) {
tempDataAll = [];
} else {
tempDataAll = tempDataAll.substring(0, tempDataAll
.lastIndexOf(","))
+ "]";
}
} else {
e.cancel = true;
}
editor.setData(tempDataAll);
}
}
</script>
==================上述为子页面=======================
父页面部分代码:
<div id="sbtcGrid" class="mini-datagrid" style="width: 100%;" idField="id" allowCellEdit="true" allowCellSelect="true" multiSelect="true" showPager="false" editNextOnEnterKey="true" editNextRowCell="true">
<div property="columns">
<div type="indexcolumn" width="20"></div>
<div type="checkcolumn" width="20"></div>
<div name="name" field="name" headerAlign="center" width="15%">
名称 <input property="editor" class="mini-textbox" required="true" style="width: 100%;" />
</div>
<div name="je" field="je" headerAlign="center" width="15%">金额</div>
<div id="gs" name="gs" field="gs" visible="true" headerAlign="center" width="15%">公司</div>
<div id="sid" name="sid" field="sid" visible="true" headerAlign="center" width="15%">SID</div>
<div id="num" name="num" field="num" visible="true" headerAlign="center" width="15%">份数</div>
<div id="insuranceDetail" name="insuranceDetail" field="insuranceDetail" headerAlign="center" width="15%">套餐组合简要</div>
<div name="action" width="120" headerAlign="center" align="center" renderer="onActionRenderer" cellStyle="padding:0;">详细</div>
</div>
</div>
//添加详细按钮
function onActionRenderer(e) {
var grid = e.sender;
var record = e.record;
var uid = record._uid;
var rowIndex = e.rowIndex;
var s = "<a href='javascript:sbtcDetail()'>费用详情</a>" ;
return s;
}
// 商保套餐详细
function sbtcDetail() {
mini.open({
url: bootPATH + "../../khdwxxsbtcxz.action",
title: "选择商保套餐详细", width: 800, height: 500, showModal: false,
onload: function () {
var iframe = this.getIFrameEl();
var Detail=sbtcGrid.getSelected();
var sbtcDetailGridData={
"gs"etail.gs,
"sid"etail.sid,
"num"etail.num,
"je"etail.je,
};
iframe.contentWindow.setSbtcmxGridData(sbtcDetailGridData);
},
ondestroy: function (action) {
var iframe = this.getIFrameEl();
sbtcDetailGridData= iframe.contentWindow.getSbtcmxGridData();
var zje = iframe.contentWindow.getZjeData();
var companyName=iframe.contentWindow.getCompanyName();
var sid=iframe.contentWindow.getSid();
var num=iframe.contentWindow.getFs();
var insuranceDetail=iframe.contentWindow.getInsuranceDetail();
var row = sbtcGrid.getSelected();
sbtcGrid.updateRow(row, {"je" : zje});
sbtcGrid.updateRow(row, {"gs" : companyName});
sbtcGrid.updateRow(row, {"sid" : sid});
sbtcGrid.updateRow(row, {"num" : num});
sbtcGrid.updateRow(row, {"insuranceDetail" : insuranceDetail});
}
});
}
|
|