新增和编辑功能公用一个Ext.Window, 所以value 要写成value: obj.dictName这样,但是问题也就出现了,当我单击新增的时候 三个textfield一齐报错提示不能为空,怎么办啊?{
name : "bean.dictName", fieldLabel : "数据字典名称",
allowBlank: false,     blankText: "不能为空,请填写",
                     maxLength : 128 ,     maxLengthText :"名称长度不能超过128",
                     value: obj.dictName, 
anchor : "90%"
}

解决方案 »

  1.   

    先不加allowBlank: false,                blankText: "不能为空,请填写",
    可以在编辑的时候加上:
    Ext.applyIf(obj,{allowBlank:false,blankText:"不能为空,请填写"})
      

  2.   

    // 增加数据字典信息
    addDict = function(gridObject){
    Ext.Ajax.request({
    waitMsg : '读取数据',
    url : BASE_PATH + "/system/DictInfoInit.action",
    method : "GET",
    callback : function(args, success, response) {
    if(success){
    var json = eval("("+response.responseText+")");
    var obj = json["bean"];
    var win = initWin(obj, gridObject);
    win.show();
    }
    }
    })
    }
    // 编辑数据字典信息
    editDict = function(gridObject){
    //判断是否有选中记录
    if (gridObject.selModel.hasSelection()) {
    // 获取被选中的记录数组
    var records = gridObject.selModel.getSelections();
    // 获取选中记录数量
    var rLength = records.length;
    if (rLength > 1) {
    Ext.Msg.alert("系统提示", "只能选择一行记录进行编辑!");
    } else {
    // 获取选中的记录
    var record = gridObject.getSelectionModel().getSelected();
    Ext.Ajax.request({
    waitMsg : '读取数据',
    url : BASE_PATH + "/system/QueryDictInfoById.action?bean.dictId="+record.get('dictId'),
    method : "GET",
    callback : function(args, success, response) {
    if(success){
    var json = eval("("+response.responseText+")");
    var obj = json["bean"];
    var win = initWin(obj, gridObject);
    win.show();
    }
    }
    })
    }
    } else {
    Ext.Msg.alert("系统提示", "请选择一行记录进行编辑!");
    }
    }

    initWin = function(obj, gridObject){
    var win = new Ext.Window({
    title : "数据字典", width : 500,
    height : 170, autoScroll : true,
    // 弹出模态窗口
    modal : true, shadow : true,
    // 不可以随意改变大小
    resizable : false, defaultType : "textfield",
    labelWidth : 200, closeAction : "hide",
    closable : true, plain : true,
    buttonAlign : "center", bodyStyle : "padding:5px 5px 0 5px",
    items : [{
    xtype : "form", labelAlign : "right",
    buttonAlign : "right", frame : true,
    layout : 'column',
    items : [{
    columnWidth : 1, layout : 'form',
    defaultType : 'textfield', labelAlign : "right",
    items : [{
    name : "bean.dictName", fieldLabel : "数据字典名称",
    allowBlank: false,     blankText: "不能为空,请填写",
                         maxLength : 128 ,     maxLengthText :"名称长度不能超过128",
                         value: obj.dictName, 
    anchor : "90%"
    },{
    name : "bean.dictCode", fieldLabel : "数据字典编码",
    allowBlank:false,     blankText:"不能为空,请填写",
                         maxLength : 64 , maxLengthText :"编码长度不能超过64",
    value: obj.dictCode,
    anchor : "90%"
    },{
    name : "bean.orderNum", fieldLabel : "显示顺序",
    allowBlank:false,      blankText:"不能为空,请填写",
                         regex : /^[0-9_]+$/,     regexText : "只能输入数字",
    value: obj.orderNum,
    anchor : "90%"
    }]
    }
    , {
    layout : 'form', defaultType : 'hidden',
    items : [{
    name : 'bean.dictId'
    ,
    value : obj.dictId
    },{
    name : 'bean.parentId'
    , value : '0'
    }]
    }
    ]
    }]
    ,
    buttons : [{
    text : "保存",
    handler : function() {
    if (!win.findByType("form")[0].form.isValid()) {
            Ext.MessageBox.alert('提示', '请将数据填写完整');
            return;
        }
    win.findByType("form")[0].form.submit({
    url : BASE_PATH + '/system/AddSlawDictionary.action',
    waitTitle : '提示',
    method : 'POST',
    waitMsg : '正在提交数据,请稍候.....',
    success : function(form, action) {
    Ext.Msg.alert("提示", "保存成功!");
    win.close();
    // 刷新表格
    gridObject.store.reload({ params : { start : 0, limit : 15} });
    dictionaryTree.root.reload();
    dictionaryTree.expandAll();
    },
    failure : function(form, action) {
    Ext.Msg.alert("提示", "返回数据出错!");
    },
    scope : this
    });
    }
    },{
    text : "关闭",
    handler : function() {
    win.close();
    }
    }],
    scope: this
    });
    return win;
    }