阅读:3011 回复:7
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民

[求助]后台怎么取到页面自定义字段的值?

楼主#
更多 发布于:2017-01-10 16:52
<asp:HiddenField id="test" runat="server"/> 在前台加了这样一个隐藏元素,9.2的mvcsheet表单页面,如何在后台获取到值,直接使用 test.value一直是空的。
前台经过一系列判断处理写入该值,需要在后台得到,然后进行处理数据。
现有流程已经上线,不想增加字段,然后再发布流程处理。
有没有什么好的方法处理?
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
1楼#
发布于:2017-01-10 17:10
你前台是怎么给隐藏控件赋值的?
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
2楼#
发布于:2017-01-11 08:47
武汉技术支持团队:你前台是怎么给隐藏控件赋值的?回到原帖
用js算出来的值,在保存验证的时候根据几个字段判断出来的状态
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
3楼#
发布于:2017-01-11 10:00
t156965365:用js算出来的值,在保存验证的时候根据几个字段判断出来的状态回到原帖
你把源代码都放上来吧,我们分析一下
武汉技术支持团队
40

帖子

1181

跟帖

3860

积分

论坛版主
论坛版主
4楼#
发布于:2017-01-11 14:26
t156965365:用js算出来的值,在保存验证的时候根据几个字段判断出来的状态回到原帖
可能在加载后台方法的时候前台JS还没有把参数值赋予上去,
可以换一种模式处理,通过前台JS调用后台方法
// 增加自定义工具栏按钮方法,触发后台事件
        $.MvcSheet.AddAction({
            Action: "TestAction",       // 执行后台方法名称
            Icon: "fa-print",           // 按钮图标
            Text: "后台事件",           // 按钮名称
            Datas: ["{selectUser}"],    // 参数,多个参数 "{Param1}","Param2"...
            //OnAction: function () {    
            /*
            自定义按钮执行事件,如果为 null 则调用$.MvcSheet.Action 执行后台方法
            如果不为 null,那么会执行这里的方法,需要自己Post到后台或写前端逻辑
            */
            //},
            OnActionDone: function (e) {
                // 后台方法调用完成后触发
                // 以下是将后台的值输出到前端控件中
                if (e) {
                    $.MvcSheetUI.SetControlValue("code", e.Code);
                    $.MvcSheetUI.SetControlValue("mvcName", e.Name);
                }
            },
            PostSheetInfo: true         // 是否提交表单数据,如果 false,那么不返回表单的数据
        });
岩竹玉雨
20

帖子

840

跟帖

205241

积分

论坛版主
论坛版主
  • 社区居民
  • 忠实会员
5楼#
发布于:2017-01-11 23:22
楼主可以参考楼上意见,
或可以先把HiddenField 控件先换成TextBox 检查你的js是否将值付给了服务器控件。
注意:前台js给服务器控件赋值时,id的获取方式为<%= id名.ClientID %>
发问题贴的时候,可以@一下我,我就能更快的知道了
t156965365
46

帖子

688

跟帖

4536

积分

H3 BPM互助团队
H3 BPM互助团队
  • 社区居民
6楼#
发布于:2017-01-16 09:46
现在的处理方式就是按照4楼的方式,在保存之前再调用一次后台,处理相关的逻辑。
这样会导致保存或者提交的时候也没会刷新两次。
前台js赋值时没有问题的,调试能收到。
查看过mvcsheet.js的save代码:
//保存
        Save: function (actionControl) {
            if (!$.MvcSheet.ActionValidata(actionControl, true)) return false;
            $.LoadingMask.Show(SheetLanguages.Current.Saving);
            var SheetPostValue = this.GetMvcPostValue(this.Action_Save);
            var that = this;
            this.PostSheet(
                    { Command: this.Action_Save, MvcPostValue: JSON.stringify(SheetPostValue) },
                    function (data) {
                        that.ResultHandler.apply(that, [actionControl, data]);
                    }
                );
        },
会重新封装post的数值,框架外的字段什么的都不会传到后台。被封装死了。
H3BPM
655

帖子

2504

跟帖

46406

积分

管理员
管理员
  • 社区居民
7楼#
发布于:2017-01-16 10:47
t156965365:现在的处理方式就是按照4楼的方式,在保存之前再调用一次后台,处理相关的逻辑。
这样会导致保存或者提交的时候也没会刷新两次。
前台js赋值时没有问题的,调试能收到。
查看过mvcsheet.js的save代码:
//保存
        Sa...
回到原帖
@武汉技术支持团队
10月签到活动奖励发放啦:http://bbs.h3bpm.com/read.php?tid=5377&fid=5
游客

返回顶部