weixin_42333463
2010-08-07 10:43
浏览 198
已采纳

ext我在一个panel上弹出一个window,然后要显示一些数据,取不到值

先写一个action里的方法:
[code="java"]
public String loadData() throws IOException {
if(plan != null && plan.getPlanId() != null){
plan = planManager.get(plan.getPlanId());
ActionContext ctx = ActionContext.getContext();

HttpServletResponse response = (HttpServletResponse)ctx.get(ServletActionContext.HTTP_RESPONSE);
response.setContentType("text/xml");
response.setCharacterEncoding("UTF-8");
response.setHeader("Cache-Control","no-cache");
response.setHeader("Pragma","no-cache");
response.setDateHeader ("Expires", 0);
StringBuffer buff = new StringBuffer();
buff.append("[");
buff.append("{'").append("entityName").append("':'").append(plan.getPlanName()).append("',");
buff.append("'").append("owner").append("':'").append(plan.getOwner().getAccountName()).append("',");
buff.append("'").append("status").append("':'").append(plan.getState()).append("',");
buff.append("'").append("desc").append("':'").append(plan.getPlanDesc()).append("'},{success:true}]");
log.info(buff.toString());
response.getWriter().write(buff.toString());
response.getWriter().close();
}
return null;
}
[/code]
-------------这里可以去到数据,并且也都执行了----------------
下面是js:
[code="java"]
function viewPlanTask() {
var _record = grid.getSelectionModel().getSelected();
if (_record) {

            myFormWin();
            form1.form.load( {
            url : 'loadData.html?plan.planId='+ _record.get('_id').substring(1),
            waitMsg : '正在载入数据...',
            failure : function(from, action) {
                alert(from.result);
                Ext.Msg.alert('编辑', '载入失败');
            },
            success : function() {
            //Ext.Msg.alert('编辑', '载入成功!');
            }
            });
    } else {
        Ext.Msg.alert('查看任务','请选择要查看的数据项!'); 
    }
}

var myFormWin = function() {
if (!viewFormWin) {
viewFormWin = new Ext.Window( {
layout : 'fit',
width : 850,
height : 500,
closeAction : 'hide',
plain : true,
title : '窗口',
items : form1,
modal:true,
reader : _jsonFormReader,
listeners :{

'hide':function(){

form1.getForm().reset();

}

}
});
}
viewFormWin.show('View');
};
var _jsonFormReader = new Ext.data.JsonReader(
[ {name : 'entityName',mapping : 'entityName'},
{name : 'owner',mapping : 'owner'},

{name : 'desc',mapping : 'desc'}]);
var form1 = new Ext.FormPanel({
monitorValid : true,
bodyborder:false,
labelAlign:'top',
height:350,
bodyStyle:'padding:10px 5px 0 100px',
frame:true,
title : '查看任务',
items : [ {
columnWidth:.5,
layout: 'form',
bodyborder:false,
items: [{
layout:'column',
bodyborder:false,
items:[{
columnWidth:.5,
layout: 'form',
bodyborder:false,
items: [{
fieldLabel: '计划名称',
id: 'planName',
name: 'planName',
anchor:'80%'
}]
},{
columnWidth:.5,
layout: 'form',
bodyborder:false,
items: [{
fieldLabel: '负责人',
name: 'owner',
id: 'owner',
anchor:'80%'
}]
}]
}]
},{
columnWidth:.5,
layout: 'form',
bodyborder:false,
items: [{
layout:'column',
bodyborder:false,
items:[{
columnWidth:.5,
layout: 'form',
bodyborder:false,
items: [{
fieldLabel: '计划描述',
name: 'planDesc',
id: 'planDesc',
anchor:'80%'
}]
}]
}]
}],
buttons : [{
text : '关闭',
handler : function() {
viewFormWin.hide();
}
}]

});
[/code]

总是提示载入失败,不走success,不晓得哪里有问题

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

7条回答 默认 最新

  • works001 2010-08-09 09:15
    已采纳

    上面的代码 排版不好 重发
    [code="java"]form1 = new Ext.FormPanel( {
    labelWidth : 75,
    labelAlign:'center',
    height:350,
    bodyStyle:'padding:10px 5px 0 30px',
    frame:true,
    title : '查看任务',
    width : 450,
    waitMsgTarget : true,
    renderTo:"form", //你可以把这个去掉
    layout:'form',
    items : [{
    layout: 'column',
    bodyborder:false,
    items: [{
    layout:'form',
    columnWidth:.5,
    bodyborder:false,
    items:[{
    fieldLabel: '计划名称',
    xtype:'displayfield',
    id: 'entityName',
    name: 'entityName',
    value:"xdsdsxx"
    }]
    },{
    layout: 'form',
    columnWidth:.5,
    bodyborder:false,
    items: [{
    fieldLabel: '负责人',
    xtype:'displayfield',
    name: 'owner',
    id: 'owner',
    //anchor:'100%',
    value:"xdsdsxx"
    }]
    }]
    },new Ext.form.TextArea({
    fieldLabel : '计划描述',
    name : 'desc',
    disabled : true,
    width : 250,//改变这个改变宽度
    growMin : 234
    })
    ],
    buttons : [{
    text : '关闭',
    handler : function() {
    viewFormWin.hide();
    }
    }]
    }); [/code]

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • works001 2010-08-07 11:47

    先不管与后台交互问题 就ext的代码问题就太了多哎
    你先 myFormWin(); 调用这个方法
    然后这个在下面定义的 没定义呢 就访问呀
    var myFormWin = function() { ...}

    window里的这个也是
    items : form1,

    form1在下面定义的 晕了

    不管这些 单单看form代码 拿出其中一段
    {

    columnWidth:.5,

    layout: 'form',

    bodyborder:false,

    items: [{

    fieldLabel: '计划名称', 都没指定控件的类型 就是xtype:"textfield" 单单运行form代码 都运行不出来呀 文本框不显示哦
    id: 'planName',

    name: 'planName',

    anchor:'80%'

    }]

    先解决正常显示再说吧

    还有后台返回的数据非json格式的
    }

    评论
    解决 无用
    打赏 举报
  • works001 2010-08-07 12:33

    js代码如果这样写
    [code="java"]
    a();
    var a = function (){
    alert(1)
    }[/code]

    火狐会报a is not a function

    如果你想只读 可以xtype:"displayfield"

    评论
    解决 无用
    打赏 举报
  • works001 2010-08-08 19:37

    代码贴上 看看

    评论
    解决 无用
    打赏 举报
  • works001 2010-08-08 19:39

    有可能宽度不够

    评论
    解决 无用
    打赏 举报
  • works001 2010-08-09 09:11
        <script type="text/javascript">
    

    Ext.onReady(function(){
    form1 = new Ext.FormPanel( {
    labelWidth : 75,
    labelAlign:'center',
    height:350,
    bodyStyle:'padding:10px 5px 0 30px',
    frame:true,
    title : '查看任务',
    width : 450,
    waitMsgTarget : true,
    renderTo:"form",
    layout:'form',
    items : [{
    layout: 'column',
    bodyborder:false,
    items: [{
    layout:'form',
    columnWidth:.5,
    bodyborder:false,
    items:[{
    fieldLabel: '计划名称',
    xtype:'displayfield',
    id: 'entityName',
    name: 'entityName',
    value:"xdsdsxx"
    }]
    },{
    layout: 'form',
    columnWidth:.5,
    bodyborder:false,
    items: [{
    fieldLabel: '负责人',
    xtype:'displayfield',
    name: 'owner',
    id: 'owner',
    //anchor:'100%',
    value:"xdsdsxx"
    }]
    }]
    },new Ext.form.TextArea({
    fieldLabel : '计划描述',
    name : 'desc',
    disabled : true,
    width : 250,//改变这个改变宽度
    growMin : 234
    })
    ],
    buttons : [{
    text : '关闭',
    handler : function() {
    viewFormWin.hide();
    }
    }]
    });
    });


        <div id="form">
    
        </div>
    </body>
    

    评论
    解决 无用
    打赏 举报
  • works001 2010-08-09 09:13

    我的修改后代码 提供给你了 关键是你的labelAlign:'top',
    我改成labelAlign:'center', 就好使了 form里的其他代码 我也稍微改了下

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题