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程序设计》笔记(二)shell程序设计

    1. 进程树形显示 ps -e f 2. 重定向 > 覆盖文件 >> 附加至文件 1> 标准输出 2> 标准错误输出 0 代表一个程序的标准输入 3. 程序可以在当前目录 ...

  2. dubbo介绍及实战

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

  3. Step by Step 开发dynamics CRM

    这里是作为开发贴的总结. 现在plugin和workflow系列已经终结. 希望这些教程能给想入坑的小伙伴一些帮忙. CRM中文教材不多, 我会不断努力为大家提供更优质的教程. Plugin 开发系列 ...

  4. CentOS7下安装docker(Docker系列1)

    CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...

  5. 微信小程序获取登录手机号

    小程序获取登录用户手机号. 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发. 首先,放置一个 button 按钮,将 ...

  6. lucene_04_解析语法查询

    解析语法查询就是调用方法查询的原始查询 例如: 查询所有的查询器的语法为:*:*,因为lucene查询是根据term来做的,既是:key:value类型.*:*表示所有域中的所有值. api调用语法解 ...

  7. java陷阱之Array.asList

    List<Integer> numbers= Arrays.asList(new Integer[] {1,2,3}); numbers.add(3); 运行这段代码会抛出 java.la ...

  8. 使用PSI-probe监控tomcat7

    http://www.lambdaprobe.org/ http://blog.csdn.net/tanglei6636/article/details/70169153 http://blog.cs ...

  9. [bzoj3282]Tree_LCT

    Tree bzoj-3282 题目大意:给你n个点m个操作.更改单点权值,加边,删边:查询路径异或和. 注释:$1\le n,m\le 10^5$ 想法:看到了加边删边,果断想到LCT维护.至于路径异 ...

  10. [bzoj2938][Poi2000]病毒_AC自动机

    病毒 bzoj-2938 Poi-2000 题目大意:给你n个01串,问是否存在一个无限长的01串使得这个01的任意子串都不等于给出的01串. 注释:All_length<=30,000 想法: ...