一聚教程网:一个值得你收藏的教程网站

热门教程

Sencha ExtJS使用中一些常见问题总结

时间:2022-06-25 18:28:51 编辑:袖梨 来源:一聚教程网

最近一直在使用Sencha进行前端开发,单独开一个帖子,用于常见问题的整理。会陆陆续续往里面添加一些内容,同事也希望能够帮助到大家。

ExtJS submit 提交导致 emptyText 提交进入表单:

 代码如下 复制代码

win.form.submit({
     submitEmptyText: false,
     url : 'xxxxx',
     method : 'post'
});


ExtJS 限制text最大字符数。

 代码如下 复制代码

{
 fieldLabel: '教育证号',
 name:"teacher.educationCardNo",
 emptyText:'请输入教育证号',
 enforceMaxLength:true,   //关键是这个
 maxLength:18,
 value:""
}


ExtJS Ajax 提交SESSION失效的问题。

1. 首先通过后端返回 session timeout 的 header 信息,再通过 response.getResponseHeader 来判断是否存在这样的信息来确定session是否失效,代码如下:

 代码如下 复制代码
Ext.onReady(function(){
 //请求超时的处理开始
 Ext.Ajax.on('requestcomplete', checkUserSessionStatus, this);
 function checkUserSessionStatus(conn, response, options) {
     var sessionStatus = response.getResponseHeader("sessionstatus");
     if (typeof(sessionStatus) != "undefined") {
         Ext.Msg.alert('提示', '会话超时,请重新登录!',
         function(btn, text) {
             if (btn == 'ok') {
                 var redirect = root_path;
                 window.location = redirect;
             }
         });
     }
 };

......Ajax 的提交失败问题。

Ext.Ajax.request 提交与 Ext.Form.panel 中的 submit 都是属于 Ajax 提交,但是前者判断返回不是由服务器端的 { success :false …} 来决定,而是通过返回的 responseText 中的返回值来判断, from 中的提交,可通过 failure 函数来判定。代码如下:

Ajax 返回失败:

 代码如下 复制代码

Ext.Ajax.request({
    url: url,
    timeout: 6000,
    success: function(response) {
        var result = Ext.decode(response.responseText);
        if (result.success) {
            Ext.Msg.alert("提示", "数据删除成功");
        } else {
            Ext.Msg.alert("提示", result.message);
        }
        parentStore.reload();
    },
    error: function(response) {
        Ext.Msg.alert("提示", "对不起,操作失败。");
        parentStore.reload();
    }
});

form 表单提交失败:

 代码如下 复制代码

Ext.getCmp("wx_student_add").submit({
    submitEmptyText: false,
    clientValidation: true,
    url: this.url,
    method: 'post',
    success: function(form, action) {
        top.Ext.Msg.alert("提示", "保存成功");
        Ext.getCmp("tw_addstudent").destroy();
        student_store.reload();
    },
    failure: function(form, action) {
        Ext.Msg.alert("提示", "数据提交失败");
        throw new Error("用户数据保存失败,请检查服务器端返回");
    }
});

热门栏目