在线等,ExtJS数据校验问题,高手请进

0x甲鱼 2010-11-07 10:56:19
小弟正在维护一个基于ASP.NET的B/S管理系统,ExtJS做的,以前客户已经往数据库里面添加了成千上万条数据。
里面有一个能查看、修改、添加和删除日期的textField,因为客户以前数据库里面这一项填的很不规范,日期格式有“YY-MM-DD”“YY.MM.DD”“YY年MM月DD日”等几种格式,所以我们没能用dateField。
但现在客户想要将这一项规范化,以后输入的日期将按照规定的统一格式(如“YY-MM-DD”),而以前的数据不变还要正常显示。
我就先选择了前台校验,将这个texiField属性里面加上了校验“YY-MM-DD”日期格式的正则表达式,使以后输入的日期数据只能按照上述格式。但是显示以前数据中的其他格式的日期就会发出警告。
后台校验的话我只会用Ext.alert弹出校验信息的对话框,但是仅因为一个小组件就弹出对话框会让客户不耐烦。

问各位大虾有没有合适的解决方法?不改动数据库。Ext的组件后台校验的话能不能像Struts的后台校验那样不弹出对话框,而直接在组件旁边显示校验信息?

另外,textField的regex属性能不能动态修改?因为我们这个系统分为“查看”状态和“非查看”状态,如果只在非查看状态使用正则表达式校验的话也能达到目的。

小弟很菜,望不吝赐教,高分求解
...全文
260 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hch126163 2010-11-11
  • 打赏
  • 举报
回复
同意,修改数据库 保存的数据格式!

数据一个规范,易维护
lovehooho 2010-11-11
  • 打赏
  • 举报
回复
支持统一数据库中数据格式的建议~
ff19880218 2010-11-10
  • 打赏
  • 举报
回复
我个人也觉得有必要把以前的数据直接进行标准化,把以前的数据变成规范的数据。
我就先选择了前台校验,将这个texiField属性里面加上了校验“YY-MM-DD”日期格式的正则表达式,使以后输入的日期数据只能按照上述格式。但是显示以前数据中的其他格式的日期就会发出警告。
后台校验的话我只会用Ext.alert弹出校验信息的对话框,但是仅因为一个小组件就弹出对话框会让客户不耐烦

第一个想法就很好,只要我们把以前的数据修改了就可以了 。。修改的方法是我们可循环语句修改 具体实现自己想 。。。至于第二个想法 只要是客户可定时不会同意的。。这样会让人很不耐烦的
以上仅代表个人的观点
likeajin 2010-11-10
  • 打赏
  • 举报
回复
顶个~~~~~~~~~
leehuat 2010-11-09
  • 打赏
  • 举报
回复

initComponent: function(){
******.initComponent.call(this);
this.addEvents(

'select'
);

this.on("select", this.handler, this.scope || this);
}
zdy32032319861105 2010-11-09
  • 打赏
  • 举报
回复
顶 顶 顶
  • 打赏
  • 举报
回复
能够用不增加或修改程序的途径完成的工作,尽量选择其它途径。不是偷懒,而是为了避免BUG和维护的难度。

这个完全可以通过执行一两条SQL语句,把以前的数据变成规范的数据。
留着原样有什么必要?既看着不统一,还要导致不必要的修改增加程序?
lveclipse 2010-11-09
  • 打赏
  • 举报
回复
这里很热闹啊,我发个小问题,似乎没人来看,借楼主人气问下:ext3.0可以用mon来注册事件,但是注册之后用fireEvent来触发,却触发不了,请问怎么触发mon注册的事件
0x甲鱼 2010-11-09
  • 打赏
  • 举报
回复
嗯,也对,能不能具体指点一下什么样的SQL语句能达到那样的效果啊?
[Quote=引用 3 楼 theforever 的回复:]

能够用不增加或修改程序的途径完成的工作,尽量选择其它途径。不是偷懒,而是为了避免BUG和维护的难度。

这个完全可以通过执行一两条SQL语句,把以前的数据变成规范的数据。
留着原样有什么必要?既看着不统一,还要导致不必要的修改增加程序?
[/Quote]
leehuat 2010-11-08
  • 打赏
  • 举报
回复

/***************对于信息提示******************/
Ext.ux.suggest = function(){
var msgCt;
function createBox(t, s){
return ['<div class="msg">',
'<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>',
'<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><font color=red><h2>', t, '</h2></font>', s, '</div></div></div>',
'<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',
'</div>'].join('');
}
return {
show : function(title, format, pau){
if(!msgCt){
msgCt = Ext.DomHelper.insertFirst(document.body, {id:'msg-div'}, true);
}

if(!pau) pau = 3;
var s = String.format.apply(String, Array.prototype.slice.call(arguments, 1));
var m = Ext.DomHelper.append(msgCt, {html: createBox(title, s)}, true);
m.slideIn('t').pause(pau).ghost("t", {remove: true});
},
mask: function(id, title){
var el = Ext.get(id);
return {
show: function(s){
el.mask(s || title, 'x-mask-loading');
},
hide: function(){
el.unmask();
},
destroy: function(){}
};
}
};
}();


/**
* 重写、扩展Ext.MessageBox某些方法
* @author davi
*/
Ext.apply(Ext.MessageBox, {
msgBox: function(ico, title, msg, fn, scope){
this.show({
title : title,
msg : '<br>' + msg,
buttons: this.OK,
fn: fn,
scope : scope,
icon: ico
});
return this;
},
//信息
info : function(msg, fn, scope){
return this.msgBox(this.INFO, '信息', msg, fn, scope);
},
//问题
quest : function(msg, fn, scope){
return this.msgBox(this.QUESTION, '问题', msg, fn, scope);
},
//警告
warn : function(msg, fn, scope){
return this.msgBox(this.WARNING, '警告', msg, fn, scope);
},
//错误
error : function(msg, fn, scope){
return this.msgBox(this.ERROR, '错误', msg, fn, scope);
},
//提示
cfm : function(msg, fn, scope){
var msg = '<br>' + msg;
return this.confirm('提示', msg, fn, scope);
},
mask: function(el, title){
return Ext.ux.suggest.mask(el, title);
},
//右上角提示
suggest: Ext.ux.suggest.show,
//自定义提示
throwOut: function(type,title,msg, format, pau){
if(type=='suggest') this.suggest(title,msg, format, pau)
else if (type=='alert') return this.alert(title,msg,format,pau);
}
});
var Msg = Ext.MessageBox;
你自己写个提示类,然后出错了 在右上角提示下,然后2秒自动消失。 如: return Msg.suggest('提示':后台返回的错误信息)
0x甲鱼 2010-11-08
  • 打赏
  • 举报
回复
谢谢,我回去好好看一下
[Quote=引用 1 楼 leehuat 的回复:]

JScript code

/***************对于信息提示******************/
Ext.ux.suggest = function(){
var msgCt;
function createBox(t, s){
return ['<div class="msg">',
'<div class="……
[/Quote]

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧