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:查询框怎么配置成下拉? 在配置表头:格式 ...
随机推荐
- 本地Docker Jenkins构建dotnet core web应用到Linux服务器 Docker上
1.准备工作 环境 本地: Windows.Docker 代码仓库:Git 服务器:Linux.Docker 前提准备 创建个有dockerfile文件的dotnet core 3 web项目 新建一 ...
- 移动端开发语言的未来的猜想#华为云·寻找黑马程序员#【华为云技术分享】
版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...
- 学习索引结构的一些案例——Jeff Dean在SystemML会议上发布的论文(下)
[摘要] 除了范围索引之外,点查找的Hash Map在DBMS中起着类似或更重要的作用. 从概念上讲,Hash Map使用Hash函数来确定性地将键映射到数组内的随机位置(参见图[9 ],只有4位开销 ...
- 【开发者portal在线开发插件系列一】profile和基本上下行消息
前言: 开发者portal支持在线开发profile(即设备建模).在线开发插件.模拟应用管理设备.模拟设备上报数据接收命令.支持离线开发的profile和插件的上传部署,是合作伙伴快速集成设备.对接 ...
- shell ssh 远程机器 追加文件内容
在host1上,把下面的两行内容通过ssh追加到host2上的/etc/ca-certificates.conf文件中 I am a student Are you ok ssh host2 &quo ...
- 详解TCP连接的“三次握手”与“四次挥手”(上)
一.TCP connection 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西: 由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它 ...
- ASP.NET Core 选项模式源码学习Options IOptions(二)
前言 上一篇文章介绍IOptions的注册,本章我们继续往下看 IOptions IOptions是一个接口里面只有一个Values属性,该接口通过OptionsManager实现 public in ...
- 马拉车manacher
目的:线性查找一个串的最长回文子串 时间复杂度:O(n) len[i]表示以i为中心的回文串的半径,mx即为当前计算回文串最右边字符的最大值,p是中心点mid,mx-i和2*p-1关于p对称 http ...
- 2019企业linux运维最需要的了解的一些硬件基础知识
第3章 服务器 245 3.1 电脑的种类 245 3.2 服务器的介绍 246 3.2.1 服务器的类别 246 3.2.2 服务器的性能 247 3.2.3 服务器的 ...
- 【Web技术】399- 浅谈前端代码加密
作者简介:于航,PayPal Senior Software Engineer,在 PayPal 上海负责 Global GRT 平台相关的技术研发工作.曾任职于阿里巴巴.Tapatalk 等企业.f ...