BPM不同表单之间子表的赋值
上次写的是同一个表单的子表之间赋值,这次是不同表单之间子表的赋值
首先,我们给需要赋值的表单添加一个复制按钮
$.MvcSheet.AddAction({
Action: "start",
Icon: "fa-copy", // 按钮图标
Text: "复制", // 按钮名称
OnActionDone: function (e) {
window.open("../../../StartInstance.aspx?WorkflowCode=" + $.MvcSheetUI.SheetInfo.WorkflowCode + "&PageAction=Close&objectid=" + $.MvcSheetUI.SheetInfo.BizObjectID);
},
PostSheetInfo: false // 是否提交表单数据,如果 false,那么不返回表单的数据
});
WorkflowCode是流程编码,也就是说StartInstance需要知道你的流程编码来创建哪个流程因为我的就是重新创建一个本流程,只不过是不同表单之间的所以直接$.MvcSheetUI.SheetInfo.WorkflowCode获取。BizObjectID是数据模型id
然后根据实际需求,在应该开放的节点加上前端调用后端代码
//从前端调用后台方法
$.MvcSheet.Action({
Async: false,
Action: "GetWorkplan", // 后台方法名称
Datas: [],//传入参数,用逗号分开,这是是例子,这个方法是没有输入参数的
LoadControlValue: true, // 是否获取表单数据
PostSheetInfo: false, // 是否获取已经改变的表单数据
OnActionDone: function (e) {
//这里e是后台返回的值,这里是一个类,如果是多行可以返回List<类>,下面用循环就行了
if (e && $.MvcSheetUI.SheetInfo.IsOriginateMode) {
var j = 1;
for (i in e) {
$("a[id^='Add_workplanitem']").click();
//这里我直接给第一行赋值,如果是多行,可以循环
//SetControlValue:第一个参数为数据项;第二个参数为需要赋的值;第三个参数为行号
$.MvcSheetUI.SetControlValue("workplanitem.zzxm", e[i]["Zzxm"], j);
$.MvcSheetUI.SetControlValue("workplanitem.SLBZ", e[i]["Slbz"], j);
$.MvcSheetUI.SetControlValue("workplanitem.SHLBZ", e[i]["Shlbz"], j);
$.MvcSheetUI.SetControlValue("workplanitem.ZLBZ", e[i]["Zlbz"], j);
j++;
}
}
}
});
//IsOriginateMode的左右是判断当前是不是第一次填写表单
$("a[id^='Add_workplanitem']").click();的理解可以参考下边
$("input[id^='code']");//id属性以code开始的所有input标签
$("input[id$='code']");//id属性以code结束的所有input标签
$("input[id*='code']");//id属性包含code的所有input标签
至此,前台代码已经完毕
后台代码:
先创建一个workplan类,把你需要返回的值放到里边
public List<workplan> GetWorkplan()
{
List<workplan> workplanlist = new List<workplan>();
string objectid = Request.QueryString["objectid"];
if (!string.IsNullOrWhiteSpace(stryobjectid))
{
string strsql = "select * from i_workplanitem where ParentObjectID='{0}' order by parentindex";
DataTable dt = OThinker.H3.WorkSheet.AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(string.Format(strsql, objectid));
for (int i = 0; i < dt.Rows.Count; i++)
{
workplan newworkplan = new workplan();
newworkplan.Zzxm = dt.Rows[i]["zzxm"] != null ? dt.Rows[i]["zzxm"].ToString() : "";
newworkplan.Slbz = dt.Rows[i]["slbz"] != null ? dt.Rows[i]["slbz"].ToString() : "";
newworkplan.Shlbz = dt.Rows[i]["shlbz"] != null ? dt.Rows[i]["shlbz"].ToString() : "";
newworkplan.Zlbz = dt.Rows[i]["zlbz"] != null ? dt.Rows[i]["zlbz"].ToString() : "";
workplanlist.Add(newworkplan);
}
}
return workplanlist;
}
BPM不同表单之间子表的赋值的更多相关文章
- layui父表单获取子表单的值完成修改操作
最近在做项目时,学着用layui开发后台管理系统. 但在做编辑表单时遇到了一个坑. 点击编辑时会出现一个弹窗. 我们需要从父表单传值给子表单.content是传值给子表单 layer.open({ t ...
- 表单的子元素可不在form标签内
表单是网页用于向服务器发送数据的元素.其用法类似下面: <form method="POST" action="/login"> <input ...
- HTML 5 服务器发送事件、Input 类型、表单元素、表单属性
HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新. Server-Sent 事件 - 单向消息传递 Server-Sent 事件指的是网页自动获取来自服务器 ...
- Html5学习进阶四 表单元素和表单属性
HTML5 的新的表单元素: HTML5 拥有若干涉及表单的元素和属性. 本章介绍以下新的表单元素: datalist keygen output 浏览器支持 Input type IE Firefo ...
- 工作流Activiti框架中表单的使用!详细解析内置表单和外置表单的渲染
Activiti中的表单 Activiti提供了一种方便而且灵活的方式在业务流程中以手工方式添加表单 对表单的支持有2种方式: 通过表单属性对内置表单进行渲染 通过表单属性对外置表单进行渲染 表单属性 ...
- 解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位
$(function () { //解决iphone填写表单时,表单项获取焦点时往下拉屏,导致顶部标题栏下滑错位 var u = navigator.userAgent; var isiOS = !! ...
- BootStrap 智能表单系列 九 表单图片上传的支持
本章介绍如何在生成表单后,可以支持上传图片后可以及时预览图片 代码如下(连接地址:https://github.com/xiexingen/Bootstrap-SmartForm/blob/maste ...
- BootStrap 智能表单系列 六 表单数据绑定(编辑页面的数据绑定)
本章介绍如何在生成表单后,将一个model的数据展示到form表单中(一般用于编辑页面) 代码如下(连接地址:https://github.com/xiexingen/Bootstrap-SmartF ...
- BootStrap 智能表单系列 五 表单依赖插件处理
这一章比较简单哦,主要就是生产表单元素后的一些后续处理操作,比如日期插件的渲染.一些autocomplete的处理等,在回调里面处理就可以了, demo: $("input.date-pic ...
随机推荐
- js对cookie增删改查的封装
/** * 获取cookie * @param name * @returns {*} */ function getCookie(name) { var cookieArr = document.c ...
- 数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法
转自:http://www.cnblogs.com/fengfenggirl/p/associate_apriori.html 数据挖掘系列 (1) 关联规则挖掘基本概念与 Aprior 算法 我计划 ...
- UVA489 - Hangman Judge【紫书例题4.2】
题意:就是给出一个字符串,让你去一个一个猜测,相同字母算一次,如果是之前猜过的也算错,如果你在错7次前猜对就算你赢,文章中是LRJ的例题代码. #include<stdio.h> #inc ...
- JS控制全屏,监听退出全屏事件
实现方案 //进入全屏 function requestFullScreen(de) { if(de.requestFullscreen){ //W3C de.requestFullscreen(); ...
- Beautifulsoup提取特定丁香园帖子回复
DataWhale-Task3(Beautifulsoup爬取丁香园) 简要分析 完整代码 结果图 参考资料 简要分析 任务3:爬取丁香园论坛特定帖子,包括帖子主题,帖子介绍,回贴内容(用户名,用户头 ...
- Git 基础教程 之 --no-ff模式合并
① 创建并切换dev分支 ② 修改readme.txt,并add,commit ③ 切回master ④ 合并 git merge --no-ff -m “merge with no-ff”d ...
- C# DataGridView 使用
之前咩有做个界面的东西,更没有使用过DataGirdView 这个控件. 现在本来是准备用DeV呢,结果发现我的DEV没有注册,只好暂时用这个DataGridView来替代使用了. 我现在要是设置两列 ...
- 把 Python 脚本打包成可以直接双击运行的 .exe 文件 【转】
因为最近要用到 Python 脚本,所以自己学习了一下,顺便学习如何把它打包成 .exe 可执行文件,达到双击运行的效果,网上找了资料,保存下来学习用,原文出处:https://baijiahao.b ...
- git常见问题总结
1.每次上传文件的时候,有很多iml文件容易不小心上传上去,然后报错,所以可以把这些文件取消上传 如图所示,每次提交时,都不会显示标红文件 具体操作步骤如下:
- lucene_02_IKAnalyre
前言 在lucene中虽然已经提供了许多的分词器:StandardAnalyzer.CJKAnalyzer等,但在解析中文的时候都会把文中拆成一个个的单子. 毕竟老外不懂中文.这里介绍一个中文的分词器 ...