ASP.NET Aries 高级开发教程:表单检测字段是否已存(番外篇)
前言:
昨天刚好有人问了这个问题,因此就针对这个问题,补上一篇吧。
正文:
如图:在用户编辑列表中,用户名是会自动检测是否已存在的。

具体对应的Html内容如下:
<label><em>*</em>用户名:</label>
<input name="UserName" id="UserName" missingmessage="" class='easyui-validatebox' validtype="exists['UserName']" required="required" />
</div>
<div class="short">

验证类型的参数是一个字符串,为字段的name。
发起的请求内容:

核心原理:
具体的JS实现在:Aries.EasyUIExtend.js 文件中。
validator: function (value, param) {
if (!param[0]) {
this.message = $Core.Lang.ruleError;
return false;
}
var data = {};
data.n = param[0].name || param[0];
data.v = value;
if (data.n.indexOf(',') > -1) {
var items = data.n.split(',');
if (items.length > 1) {
data.n = items[0];
var $input = $(":input[name='" + items[1] + "']");
if ($input) {
data.n2 = items[1];
data.v2 = $input.val();
}
if (items.length > 2) {
var $input = $(":input[name='" + items[2] + "']");
if ($input) {
data.n3 = items[2];
data.v3 = $input.val();
}
}
}
}
var id = param[1] || AR.Utility.queryString('id');
if (id) data.id = id;
//method, objName, data, async, url, callback, isShowProgress
var result = AR.Ajax.get("Exists", AR.Form.tableName, data);
if (result) {
if (result.success) {
this.message = $Core.Lang.dataExists;
return false;
}
return true;
}
else {
this.messgage = $Core.Lang.requestFail;
return false;
}
}
},
这段实现,可以带多两个参数,即可以满足三个联合主键组成的唯一。
即配置可以成Exsists['name1,name2,name3','主键ID的值,不传则从请求的参数获取']。
对应的后台代码:
[ActionKey("View,Get")]
/// <summary>
/// 是否存在某数据。
/// </summary>
public void Exists()
{
string name = Query<string>("n", "");
string value = Query<string>("v", "");
string name2 = Query<string>("n2", "");
string value2 = Query<string>("v2", "");
string name3 = Query<string>("n3", "");
string value3 = Query<string>("v3", "");//支持到三个,可以了
bool result = false;
using (MAction action = new MAction(ObjCode))
{
string id = GetID;
string where = string.Format("{0}='{1}'", name, value);
if (name2 != "" && value2 != "")
{
where += string.Format(" and {0}='{1}'", name2, value2);
}
if (name3 != "" && value3 != "")
{
where += string.Format(" and {0}='{1}'", name3, value3);
}
if (!string.IsNullOrEmpty(id))
{
where += string.Format(" and {0}<>'{1}'", action.Data.PrimaryCell.ColumnName, id);
}
result = action.Exists(where);
}
jsonResult = JsonHelper.OutResult(result, string.Empty);
}
扩展:在行内编辑,如何实现该功能:

V5.4.1.3或以前:这里只给出思路,dg.options.onEditing事件中,可以拿到编辑框,可以动态赋加验证属性,也可以拿到值,再调用Exsits手工检测。
V5.4.1.4版本,只要在配置表头里,把唯一项打勾即可。

ASP.NET Aries 高级开发教程:表单检测字段是否已存(番外篇)的更多相关文章
- ASP.NET Aries 高级开发教程:Excel导入之代码编写(番外篇)
前言: 以许框架提供的导入配置功能,已经能解决95%以上的导入情况,但有些情况总归还是得代码来解决. 本篇介绍与导入相关的代码. 1.前端追加导入时Post的参数: var grid = new AR ...
- ASP.NET Aries 高级开发教程:Excel导入之单表配置(上)
前言: 随着ASP.NET Aries的普及,刚好也有点闲空,赶紧把Excel导入功能的教程补上. Excel导入功能,分为四篇:单表配置(上).多表高级配置(中).配置规则(下).代码编写(番外篇) ...
- ASP.NET Aries 高级开发教程:Excel导入之多表高级导入配置(中)
前言: 在面对Excel的各种复杂导入情况中,多表导入是很常见的情景. 今天就来写一下多表导入是如何配置的. 1.自定义导入模板 怎么自定义: 其实就是自己新建一个Excel了,把列头都写好. 不过有 ...
- ASP.NET Aries 高级开发教程:主题样式及多语言(标签化控制)
前言: 最新ASP.NET Aries升级到V5.2.0以上之后,之前的样式和多语言机制,有了重大的升级机制,这篇就简单介绍一下. 1.控制开关 在配置维护那里,新增了两个控制项: 2.如何添加主题 ...
- ASP.NET Aries 高级开发教程:Excel导入配置之规则说明(下)
前言: 前面两篇都是大体介绍流程,有一些配置细节,没有细说,这里用一篇补上. 1.Excel配置项 起始行索引.列头跨行数: 对于自定义的Excel导入模板(有时候模板是由客户提供,模板的规则很乱) ...
- ASP.NET Aries 高级开发教程:使用存储过程(番外篇)
前言: 发现这个问题,有不少人提起过,所以就简单写成文章吧. 接下来看如何在Aries 框架中使用存储过程,整体步骤和绑定普通视图差不多. 步骤一:新建一个空视图. 可以在SqlCode管理中,创建一 ...
- ASP.NET Aries 高级开发教程:如何写WebAPI接口
前提: 最近,有不少同学又问到,Aries里如何提供WebAPI接口? 针对这个问题,今天给顺路写个教程,其实呢,很简单的. 方式一:直接用WebService提供接口. 用这种方式,直接添加接口就可 ...
- ASP.NET Aries 高级开发教程:行内编辑事件怎么新增数据到后台(番外篇)
前提: 今天又网友又提出了一个问题,说行内编辑保存之前,怎么新增一些数据提交到后台? 对方说看了源码,也没找到怎么处理,这里就写文给解答一下. 解答: 于是我看了一眼源码,只能说你没找到地方: 第12 ...
- ASP.NET Aries 入门开发教程4:查询区的下拉配置
背景: 今天去深圳溜达了一天,刚回来,看到首页都是微软大法好,看来离.NET的春天就差3个月了~~ 回到正题,这篇的教程讲解下拉配置. 查询区的下拉配置: 1:查询框怎么配置成下拉? 在配置表头:格式 ...
随机推荐
- Bash Shell编程简记
Shell编程简记 经常在linux环境下开发的同学,难免要使用shell的一些命令或者编写小的脚本,我这里也总结和整理下,自己对Shell的理解和常用的一些shell脚本. 按照目录分为如下3个节: ...
- rep()函数简介
rep()函数:重复 rep(x,...) rep.int(x,times) rep_len(x,length.out) ·x:一个向量(vector),一个因子(factor),一个POSIXct或 ...
- Spring IOC容器装配Bean_基于注解配置方式
bean的实例化 1.导入jar包(必不可少的) 2.实例化bean applicationContext.xml(xml的写法) <bean id="userDao" cl ...
- 图库网站Unsplash高清原图爬虫【华为云技术分享】
[摘要] 写博客的好工具,快速获得高清图片 在百度图片爬虫小助手里,我开发了一个爬虫,来节约我写博客时搜集图片的时间. 但是,也出现了一些问题,主要有以下几点: 百度图片上的质量参差不齐,大部分图片质 ...
- springcloud-Eureka组件
一.简介 Eureka 是 Netflix 开发的服务发现框架,本身是一个基于 REST 的服务,主要用于定位运行在 AWS 域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringC ...
- luogu P2345 奶牛集会 |排序+树状数组
题目描述 约翰的N 头奶牛每年都会参加"哞哞大会".哞哞大会是奶牛界的盛事.集会上的活动很多,比如堆干草,跨栅栏,摸牛仔的屁股等等.它们参加活动时会聚在一起,第i 头奶牛的坐标为X ...
- 开放下载 | 《Knative 云原生应用开发指南》开启云原生时代 Serverless 之门
点击下载<Knative 云原生应用开发指南> 自 2018 年 Knative 项目开源后,就得到了广大开发者的密切关注.Knative 在 Kubernetes 之上提供了一套完整的应 ...
- Python获取 bing 地图发布自己的 TMS 服务(二)解决海量瓦片存取问题
金字塔结构的瓦片数量有多大 以目前互联网常用的WebMecator为例 第一层:4幅256*256影像瓦片(JPG或PNG等) 第二层:42 第三层:43 依次类推比如计算第1层至第18层的瓦片总数目 ...
- .net core 微服务通讯组件Orleans的使用与配置
Orleans非常好用 并且支持.net core 社区也非常活跃 Orleans2.0+在国内的教程偏少 多数是1.5版本的教程 在这里写上四篇Orleans教程 目录 1.Orleans的入门教程 ...
- 深入学习 Arduino LinkedList库(一个变长的集合类数组)
QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷 单片机菜鸟博哥CSDN 1.前言 博主是做Android App开发出身的,所以对Java这门语言算是有 ...