{
fieldLabel: '@Html.GetLocalText("WebAdaName")', //适配器名称
name: "ADAPTERNAME",
id: "ADAPTERNAME",
allowBlank: false,
blankText: "请输入适配器名",
regex: /^[a-zA-Z]+[a-zA-Z0-9]*$/,
regexText: '@Html.GetLocalText("WebAppStartWithNum")',
maxLength: 20,
anchor: '81%',
enforceMaxLength: true,
maxLengthText: '@Html.GetLocalText("WebAppMaxLen")',
invalidText: '@Html.GetLocalText("WebAdaNameExist")', //适配器名称已经存在
listeners: {
"blur": function () {
if (isUpdate) {
validateAdaNameUpdate();
}
else {
validateAdaName();
}
}, "change": function () {
if (isUpdate) {
validateAdaNameUpdate();
}
else {
validateAdaName();
}
}
}
}
function validateAdaName() {
var adaName = Ext.getCmp('ADAPTERNAME').getValue();
if (adaName.length == 0) return true;
var re = /^[a-zA-Z]+[a-zA-Z0-9]*$/;
var ress = re.test(adaName);
if (!ress) {
Ext.getCmp('ADAPTERNAME').markInvalid('@Html.GetLocalText("WebAppStartWithNum")');
_returnValue('@Html.GetLocalText("WebAppStartWithNum")');
return fieldIsValid;
}
Ext.Ajax.request({
url: '@Url.Action("VerifyAdapterName", "Adapter")',
method: 'get',
params: { name: adaName },
success: function (response, options) {
var data = eval('(' + response.responseText + ')');
if (!data.success && ress) {
_returnValue(true);
Ext.getCmp('ADAPTERNAME').clearInvalid();
}
else {
Ext.getCmp('ADAPTERNAME').markInvalid('@Html.GetLocalText("WebAdaNameExist")');
_returnValue(false); //不能在success方法里面直接返回。
}
}
});
function _returnValue(ok) {
fieldIsValid = ok;
}
return fieldIsValid;
}
//修改时的验证
function validateAdaNameUpdate() {
var adaName = Ext.getCmp('ADAPTERNAME').getValue();
if (adaName.length == 0) return true;
var re = /^[a-zA-Z]+[a-zA-Z0-9]*$/;
var ress1 = re.test(adaName);
if (!ress1) {
Ext.getCmp('ADAPTERNAME').markInvalid('@Html.GetLocalText("WebAppStartWithNum")');
_returnValue('@Html.GetLocalText("WebAppStartWithNum")');
return fieldIsValid;
}
var data = stuForm.getForm().getValues();
Ext.Ajax.request({
url: '@Url.Action("VerifyAdaIDAndName", "Adapter")',
method: 'get',
params: { name: adaName, adaid: data.ADID },
success: function (response, options) {
var data = eval('(' + response.responseText + ')');
if (!data.success && ress1) {
_returnValue(true);
Ext.getCmp('ADAPTERNAME').clearInvalid();
}
else {
Ext.getCmp('ADAPTERNAME').markInvalid('@Html.GetLocalText("WebAdaNameExist")');
_returnValue(false); //不能在success方法里面直接返回。
}
}
});
function _returnValue(ok) {
fieldIsValid = ok;
}
return fieldIsValid;
}
后台Controller
public ActionResult VerifyAdapterName(string name)
{
AdapterDTO apps = ServiceInvoker<IWebService>.Invoke<AdapterDTO>(
appSvc => appSvc.GetAdapterByName(name));
if (apps != null)
{
return Json(new { success = true, data = apps }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { success = false, data = apps }, JsonRequestBehavior.AllowGet);
}
}
public ActionResult VerifyAdaIDAndName(string adaid, string name)
{
AdapterDTO adaByName = ServiceInvoker<IWebService>.Invoke<AdapterDTO>(
appSvc => appSvc.GetAdapterByName(name));
if (adaByName != null && adaid != null && adaid != adaByName.ADID)
{
//name被改成与数据库其他appName一样,校验应该显示已存在的提示
return Json(new { success = true, data = adaByName }, JsonRequestBehavior.AllowGet);
}
else
{
return Json(new { success = false, data = adaByName }, JsonRequestBehavior.AllowGet);
}
}
查询方法的实现:
/// <summary>
/// 用于验证
/// </summary>
/// <param name="name"></param>
/// <returns></returns>
public AdapterDTO GetAdapterByName(string name)
{
ES_ADAPTER clist = null;
if (String.IsNullOrEmpty(name)) return null;
else
{
clist = adapterRepository.GetByQuery(r => r.ADAPTERNAME == name).FirstOrDefault();
AdapterDTO dtoList = typeAdapter.Adapt<ES_ADAPTER, AdapterDTO>(clist);
return dtoList;
}
}