BPM中字段查重,C#Ajac调用示例
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调用示例的更多相关文章
- Javascript中数组查重的方法总结大全
数组查重:简单点说,就是找出数组中重复的元素然后去除,最后得到一个没有重复元素的数组. // 方法一思路: 1.构建一个新的数组,用于存放结果. 2.for循环中每次从数组取出一个 ...
- Oracle如何用单字段或多字段进行查重
最近在整理数据形成信用报告,发现重复的数据真的多,梳理都好久.我就做个笔记把去掉重复数据的方法整理下来.方便我后期查阅. 我将我目前已知的两种去重方法分为:视图去重和表去重.原理就是有无rowid这个 ...
- 在PHP项目中使用Standford Moss代码查重系统
Standford Moss 系统是斯坦福大学大名鼎鼎的代码查重系统,它可以查出哪些同学提交的代码是抄袭别人的,从而将提交结果拒之门外.它对一切希望使用该系统的人都是开放的,那么在PHP的项目中如何使 ...
- 【实习记】2014-09-01从复杂到简单:一行命令区间查重+长整型在awk中的bug
9月1号,导出sql文件后,想到了awk,但很复杂.想到了用sed前期处理+python排序比较的区间查重法.编写加调试用了约3小时. 9月2号,编写C代码的sql语句过程中,发现排序可以交m ...
- 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器
一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...
- MySql语句中select可以嵌套么,字段的重命名可以用中文么
今天文档中看到的查询语句,SELECT后面又跟了一个SELECT嵌套,而且把字段重命名为中文,请问可以这样做么 MySql语句中select可以嵌套么,字段的重命名可以用中文么 >> my ...
- 【NLP】Python实例:申报项目查重系统设计与实现
Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...
- 【NLP】Python实例:基于文本相似度对申报项目进行查重设计
Python实例:申报项目查重系统设计与实现 作者:白宁超 2017年5月18日17:51:37 摘要:关于查重系统很多人并不陌生,无论本科还是硕博毕业都不可避免涉及论文查重问题,这也对学术不正之风起 ...
- KO ------- 表中字段名和实体类属性名不一致
-----------------------siwuxie095 KO ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就 ...
随机推荐
- 《Linux程序设计》笔记(二)shell程序设计
1. 进程树形显示 ps -e f 2. 重定向 > 覆盖文件 >> 附加至文件 1> 标准输出 2> 标准错误输出 0 代表一个程序的标准输入 3. 程序可以在当前目录 ...
- dubbo介绍及实战
1. dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封 ...
- Step by Step 开发dynamics CRM
这里是作为开发贴的总结. 现在plugin和workflow系列已经终结. 希望这些教程能给想入坑的小伙伴一些帮忙. CRM中文教材不多, 我会不断努力为大家提供更优质的教程. Plugin 开发系列 ...
- CentOS7下安装docker(Docker系列1)
CentOS7下安装docker 系统要求 为了安装docker,需要准备 64-bit的CentOS 7 删除非官方的Docker包 yum的仓库中有一个很旧的Docker包, 现在Docker官方 ...
- 微信小程序获取登录手机号
小程序获取登录用户手机号. 因为需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发. 首先,放置一个 button 按钮,将 ...
- lucene_04_解析语法查询
解析语法查询就是调用方法查询的原始查询 例如: 查询所有的查询器的语法为:*:*,因为lucene查询是根据term来做的,既是:key:value类型.*:*表示所有域中的所有值. api调用语法解 ...
- java陷阱之Array.asList
List<Integer> numbers= Arrays.asList(new Integer[] {1,2,3}); numbers.add(3); 运行这段代码会抛出 java.la ...
- 使用PSI-probe监控tomcat7
http://www.lambdaprobe.org/ http://blog.csdn.net/tanglei6636/article/details/70169153 http://blog.cs ...
- [bzoj3282]Tree_LCT
Tree bzoj-3282 题目大意:给你n个点m个操作.更改单点权值,加边,删边:查询路径异或和. 注释:$1\le n,m\le 10^5$ 想法:看到了加边删边,果断想到LCT维护.至于路径异 ...
- [bzoj2938][Poi2000]病毒_AC自动机
病毒 bzoj-2938 Poi-2000 题目大意:给你n个01串,问是否存在一个无限长的01串使得这个01的任意子串都不等于给出的01串. 注释:All_length<=30,000 想法: ...