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 ------- 表中字段名和实体类属性名不一致 如果数据库表中的字段名和实体类的属性名不一致,那么在查询时, 相应字段的结果就 ...
随机推荐
- VTK初始化New返回Null问题
原文链接:http://www.cppblog.com/mythma/archive/2013/08/02/vtk-6-new-null.html 在使用VTK6.0时候,会遇到X::New()返回为 ...
- Arduino 红外接收
一.实物图 二.例子代码 注:git clone https://github.com/z3t0/Arduino-IRremote.git 放到Arduino 的libraries目录下面 从遥控器 ...
- NSURLCredential 代表认证结果证书?
NSURLCredential 代表认证结果证书?
- java 发送http请求
参考别人的 package test; import java.io.BufferedReader; import java.io.IOException; import java.io.InputS ...
- 实现Modbus ASCII多主站应用
1.更新设计关于原来的协议栈在Modbus ASCII主站应用时所存在的局限性与Modbus RTU也是一样的,所以我们不分析它的不足,只讨论更新设计.我们将主站及其所访问的从站定义为通用的对象,而当 ...
- 明明引用了jquery,js还是报错
先引jquery,不然加载上一个js的时候jquery还没有加载 <script src="js/jquery-1.9.1.js" type="text/javas ...
- Python 文件操作 day2
一.打开文件的模式1:读.写.追加 1.r读:读模式,只能读,不能写,打开不存在的文件会报错:可省略'r',因为不写默认是读模式 f = open('filename',encoding='utf-8 ...
- unittest的case和报告生成方法
#coding=utf-8from appium import webdriverimport unittestimport HTMLTestRunnerclass CaseTest(unittest ...
- leetcode 188-maxProfit
public static int maxProfit(int k, int[] prices) { if (0 >= k || null == prices || 1 >= prices ...
- [USACO10DEC]宝箱Treasure Chest
区间DP,但是卡空间. n2的就是f[i,j]=sum[i,j]-min(f[i+1][j],f[i][j-1])表示这个区间和减去对手取走的最多的. 但是空间是64MB,就很难受 发现一定是由大区间 ...