BPM中字段查重记录:

这也算是一个C#调用Ajax的示例吧,如果是异步加载的话async: false去掉就可以了。

需求:比如现在要录入一些信息,但是,有一个字段不能重复,BPM表都是自己生成的,所以我们需要自己在保存的时候进行验证。在保存的时候获取到要判断的字段查看是不是复核要求,数据库有没有当前字段,如果有的话,就提示错误信息,让用户重新输入。

建好表单之后,只需增加JavaScript代码:

     <script type="text/javascript">
$.MvcSheet.Ready(function () {
$("input[data-datafield='cardNumber']").change(function () {
setTimeout(function () {
ClearerrorMessagecardNumber();
}, 1000);
});
}); $.MvcSheet.Validate = function () {
if ($.MvcSheetUI.SheetInfo.ActivityCode == "Activity2") {
if (this.Action == "Submit") {
var result = true;
result = CheckCardNumber();
return result;
}
}
}
function CheckCardNumber() {
var varcardnumber = $.MvcSheetUI.GetControlValue("cardNumber");
ClearerrorMessagecardNumber();
var result = true;
var ajaxUrl = "/portal/Ajax/CardNumberRepeatHandler.ashx";
$.ajax({
async: false,
type: "post",
url: ajaxUrl,
data: { "cardNumber": varcardnumber, "ObjectID": $.MvcSheetUI.SheetInfo.BizObjectID },
success: function (e) {
if (e == "0") {
var spanhtml = "<label id=\"errorMessagecardNumber\" class=\"InvalidText\">";
var html = "";
html += "证件号码重复";
spanhtml += html + "</label>";
$("input[data-datafield='cardNumber']").removeClass("inputMouseEnter");
$("input[data-datafield='cardNumber']").addClass("inputError inputMouseOut")
$("input[data-datafield='cardNumber']").after(spanhtml);
console.log("12212");
result = false;
}
}
});
return result;
} function ClearerrorMessagecardNumber() {
if ($("#errorMessagecardNumber").length >= 1) {
$("#errorMessagecardNumber").remove();
$("input[data-datafield='cardNumber']").removeClass("inputError inputMouseOut");
$("input[data-datafield='cardNumber']").addClass("inputMouseEnter");
}
}
</script>

这里是调用Ajax强制同步完成的,不然的话程序会先进行了保存,然后才会提示错误,这样达不到需求的效果,那么,Ajax代码是这样的:

<%@ WebHandler Language="C#" Class="OThinker.H3.Portal.Ajax.CardNumberRepeatHandler" %>

using System;
using System.Web;
using OThinker.H3.BizBus;
using System.Data;
using System.Collections.Generic;
using System.IO;
using OThinker.H3.Apps;
using System.Linq;
using OThinker.H3.WorkflowTemplate;
using OThinker.H3.Acl;
using System.Text; namespace OThinker.H3.Portal.Ajax
{
public class CardNumberRepeatHandler : HttpHandlerBase
{ public override void DoAction(HttpContext context)
{
context.Response.ContentType = "text/plain";
string strobjectid = this.Request.Form["ObjectID"] ?? "";
string strcardnumber = this.Request.Form["cardNumber"] ?? ""; string result = string.Empty; if (!string.IsNullOrWhiteSpace(strobjectid))
{
string strsql = "select 1 from I_isRepeat where objectid!='" + strobjectid + "' and cardNumber='" + strcardnumber + "'";
DataTable dt = OThinker.H3.WorkSheet.AppUtility.Engine.EngineConfig.CommandFactory.CreateCommand().ExecuteDataTable(strsql); if (dt!=null && dt.Rows.Count>)
{
result = "";
}
else
{
result = "";
}
}
context.Response.Clear();
context.Response.Write(result);
context.Response.End();
} }
}

BPM中字段查重,C#Ajac调用示例的更多相关文章

  1. Javascript中数组查重的方法总结大全

    数组查重:简单点说,就是找出数组中重复的元素然后去除,最后得到一个没有重复元素的数组. // 方法一思路:     1.构建一个新的数组,用于存放结果.       2.for循环中每次从数组取出一个 ...

  2. Oracle如何用单字段或多字段进行查重

    最近在整理数据形成信用报告,发现重复的数据真的多,梳理都好久.我就做个笔记把去掉重复数据的方法整理下来.方便我后期查阅. 我将我目前已知的两种去重方法分为:视图去重和表去重.原理就是有无rowid这个 ...

  3. 在PHP项目中使用Standford Moss代码查重系统

    Standford Moss 系统是斯坦福大学大名鼎鼎的代码查重系统,它可以查出哪些同学提交的代码是抄袭别人的,从而将提交结果拒之门外.它对一切希望使用该系统的人都是开放的,那么在PHP的项目中如何使 ...

  4. 【实习记】2014-09-01从复杂到简单:一行命令区间查重+长整型在awk中的bug

        9月1号,导出sql文件后,想到了awk,但很复杂.想到了用sed前期处理+python排序比较的区间查重法.编写加调试用了约3小时. 9月2号,编写C代码的sql语句过程中,发现排序可以交m ...

  5. 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器

    一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...

  6. MySql语句中select可以嵌套么,字段的重命名可以用中文么

    今天文档中看到的查询语句,SELECT后面又跟了一个SELECT嵌套,而且把字段重命名为中文,请问可以这样做么 MySql语句中select可以嵌套么,字段的重命名可以用中文么 >> my ...

  7. 【NLP】Python实例:申报项目查重系统设计与实现

    Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...

  8. 【NLP】Python实例:基于文本相似度对申报项目进行查重设计

    Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...

  9. KO ------- 表中字段名和实体类属性名不一致

    -----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就 ...

随机推荐

  1. 【Linux】计划任务管理crontab、at

    一.计划任务管理 —— crontab 1. crontab 命令 •  按照预先设置的时间周期(分钟.小时.天…… )重复执行用户指定的命令操作,属于周期性计划任务,默认打开“/var/spool/ ...

  2. dubbo介绍及实战

    1. dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封 ...

  3. uni-app判断各大平台的语法

    uni-app是一款强大的前端框架,它除了pc端其他都可以实现,打包原生app.手机h5页面,微信小程序, 但是有一个问题就是本生的app和微信小程序是有一定的区别的,因为app有标题栏,返回键,而微 ...

  4. 【剑指Offer】27、字符串的排列

      题目描述:   输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba.    ...

  5. 爬虫系列(五) re的基本使用

    1.简介 究竟什么是正则表达式 (Regular Expression) 呢?可以用下面的一句话简单概括: 正则表达式是一组特殊的 字符序列,由一些事先定义好的字符以及这些字符的组合形成,常常用于 匹 ...

  6. python项目开发:ftp server开发

    程序要求: 1.用户加密认证 (对用户名密码进行MD5验证)2.允许同时多用户登陆 (使用socket server方法,为每个用户都创建一个信息文件)3.每个用户有自己的家目录,且只能访问自己的家目 ...

  7. 把 Python 脚本打包成可以直接双击运行的 .exe 文件 【转】

    因为最近要用到 Python 脚本,所以自己学习了一下,顺便学习如何把它打包成 .exe 可执行文件,达到双击运行的效果,网上找了资料,保存下来学习用,原文出处:https://baijiahao.b ...

  8. PHP5.5下安装配置EcShop

    建议用较旧的PHP版本与EcShop搭配,比如PHP5.3,新版的PHP有很多奇奇怪怪的问题... 错误描述: Deprecated: preg_replace(): The /e modifier ...

  9. 洛谷 P2813 母舰

    题目描述 在小A的星际大战游戏中,一艘强力的母舰往往决定了一场战争的胜负.一艘母舰的攻击力是普通的MA(Mobile Armor)无法比较的. 对于一艘母舰而言,它是由若干个攻击系统和若干个防御系统组 ...

  10. Timus - 1209 - 1, 10, 100, 1000...

    先上题目: 1209. 1, 10, 100, 1000... Time limit: 1.0 secondMemory limit: 64 MB Let's consider an infinite ...