新人,对EXT一窍不通,但是现在急用,
如下JSP代码是有一排“新增,修改,删除,查询”的功能按钮,这里的代码是还没有点击查询,就显示出所有内容,反而点击查询没有查询功能,代码看不懂,希望给点提示   如果是答案更好啦   谢谢
这里是第一部分:<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<html>
<head>
<script type="text/javascript" src="pagesExt/public.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>模板</title><%@ page import="util.ParFieldFormer"%><%
ParFieldFormer parFieldFormer = new ParFieldFormer(
request.getParameter("interfaceID"));
System.out.println(request.getParameter("interfaceID"));
//System.out.println(parFieldFormer.getInterfaceID());
String formid = request.getParameter("interfaceID");
System.out.println(formid);
//ParFieldFormer parFieldFormer = new ParFieldFormer("001");
%>
</head>
<script type="text/javascript">
Ext.onReady(function(){

   //定义数据集对象
var headStore = new Ext.data.Store({//配置分组数据集
    baseParams: {formid:'<%=formid%>'},    
autoLoad :true,
reader: new Ext.data.JsonReader({
       root   : 'items', 
               totalProperty  : 'result'
<%--     /***************************hhl定义数据集表名***************************************************/--%>
<%--    <% --%>
<%--     out.print(parFieldFormer.getJsstorerecord());--%>
<%--    %>--%>
<%----%>
<%--     /***************************hhl定义数据集表名***************************************************/--%>
<%-- id: 'id'--%>

},
Ext.data.Record.create([
    /***************************hhl定义数据集列名***************************************************/
     <% 
    out.print(parFieldFormer.getJsStoreCol());
   
   
 %>
    /***************************hhl定义数据集列名***************************************************/

])
),
proxy : new Ext.data.HttpProxy({
    waitMsg : '正在加载数据请稍后',//提示信息
waitTitle : '提示',//标题
url : 'formext.do?method=getall' //hhl定义查询提交地址
})

})
  
//----------------------------------------------------------------------------  
  //创建工具栏组件
var toolbar = new Ext.Toolbar([
{text : '新增',iconCls:'add',handler : showAddDyfrom},
{text : '修改',iconCls:'option',handler : showModifyDyform},
{text : '删除',iconCls:'remove',handler : showDeleteDyfrom},
{text : '查询',iconCls:'view',handler : loadForm}
]);
   //创建Grid表格组件
var cb = new Ext.grid.CheckboxSelectionModel()
var dyformGrid = new Ext.grid.GridPanel({
applyTo : 'grid-div',
tbar : toolbar,
frame:true,
store: headStore,
viewConfig : {
autoFill : true
},
sm : cb,
columns: [//配置表格列
new Ext.grid.RowNumberer({
header : '行号',
width : 40
}),//表格行号组件
cb,
/***************************hhl定义表格列头 ***************************************************/
  <% 
    out.print(parFieldFormer.getJsGridCol());
      %>
/***************************hhl定义表格列头 ***************************************************/ ]
});

//-----------------------------------------------------------------------
var dyfromForm = new Ext.FormPanel({
labelSeparator : ":",
labelAlign: 'right',
frame:true,
autoWidth:true,
border:false,
items : [
/***************************hhl定义表单字段名 ***************************************************/           
 <% 
    out.print(parFieldFormer.getFormField());
    System.out.print(parFieldFormer.getFormField());
     %>
/***************************hhl定义表单字段名 ***************************************************/
{
xtype:'hidden',
name : 'id'
}
],
buttons:[
{
text : '关闭',
handler : function(){
    win.hide();
}
},{
text : '提交',
handler : submitForm
    //handler : form_inter_bopg
}
]
});


//创建弹出窗口
var win = new Ext.Window({
layout:'fit',
width:<%=(parFieldFormer.getMaxWidth())+ 250 %>,   //参数区高度
    closeAction:'hide',
    //closeAction:'close',
    height:<%=(parFieldFormer.getMaxLineNum() + 1) * 25 + 80%>,   //参数区高度
resizable : false,
shadow : true,
modal :true,
    closable:true,
    bodyStyle:'padding:5 5 5 5',
    animCollapse:true,
items:[dyfromForm]
});

   //显示新建窗口
function showAddDyfrom(){
dyfromForm.form.reset();
dyfromForm.isAdd = true;
win.setTitle("新增数据");
win.show();
}

解决方案 »

  1.   


    最后一部分
     //-----------------------------------------------------------------------------
       //提交表单数据
    function submitForm(){

     if (!<%=formid%>_valid())//hhl调用表单验证
     {
      return ;
     }


    //判断当前执行的提交操作,isAdd为true表示执行新增操作,false表示执行修改操作
    if(dyfromForm.isAdd){
    //新增信息
        dyfromForm.form.submit(
    {
    clientValidation:true,//进行客户端验证
    waitMsg : '正在提交数据请稍后',//提示信息
    waitTitle : '提示',//标题
    url : 'formext.do?method=addForm',//请求的url地址 //hhl新增提交地址
    method:'POST',//请求方式
    params :{formid:'<%=formid%>'},   
    success:function(form,action){//加载成功的处理函数 
                    win.hide();
    updateDyformList(action.result.<%out.print(parFieldFormer.getJsprimarykey());%>); //hhl自定义主键
    Ext.Msg.alert('提示','新增记录成功');
    },
    failure:function(form,action){//加载失败的处理函数
    Ext.Msg.alert('提示','新增书记录失败');
    }
    });
    }else{
    //修改信息
    dyfromForm.form.submit({
    clientValidation:true,//进行客户端验证
    waitMsg : '正在提交数据请稍后',//提示信息
    waitTitle : '提示',//标题
    url : 'formext.do?method=updateform',//请求的url地址 //hhl修改提交地址
    method:'POST',//请求方式
    params : {formid:'<%=formid%>'}, //hhl自定义主键
    success:function(form,action){//加载成功的处理函数
    win.hide();
    updateDyformList(action.result.<%out.print(parFieldFormer.getJsprimarykey());%>);  //hhl自定义主键
    Ext.Msg.alert('提示','修改信息成功');
    },
    failure:function(form,action){//加载失败的处理函数
    Ext.Msg.alert('提示','修改信息失败');
    }
    });
    }
    }


    //明细数据修改后,同步更新列表信息
    function updateDyformList(<%out.print(parFieldFormer.getJsprimarykey());%>){    //hhl自定义主键
    var fields = getFormFieldsObj(<%out.print(parFieldFormer.getJsprimarykey());%>); //hhl定义主键
    var index = headStore.find("<%out.print(parFieldFormer.getJsprimarykey());%>",fields.<%out.print(parFieldFormer.getJsprimarykey());%>); //hhl定义主键
    if(index != -1){
    var item = headStore.getAt(index);
    for(var fieldName in fields){
    item.set(fieldName,fields[fieldName]);
    }
    headStore.commitChanges();
    }else{
    var rec = new Ext.data.Record(fields);
    headStore.add(rec);
    }
    }


    //取得表单数据
    function getFormFieldsObj(<%out.print(parFieldFormer.getJsprimarykey());%>){ //hhl自定义主键
    var fields = dyfromForm.items;
    var obj = {};
    for(var i = 0 ; i < fields.length ; i++){
    var item =  fields.itemAt(i);
    var value = item.getValue();
    obj[item.name] = value;
    }
    if(Ext.isEmpty(obj["<%out.print(parFieldFormer.getJsprimarykey());%>"])){ //hhl定义主键
    obj["<%out.print(parFieldFormer.getJsprimarykey());%>"] = <%out.print(parFieldFormer.getJsprimarykey());%>; //hl定义主键
    }
    return obj;
    }
        //---------------------------------------------------------------------------
        //显示修改信息窗口
    function showModifyDyform(){
    var dyformList = getDyformIdList();
    var num = dyformList.length;
    if(num > 1){
    Ext.MessageBox.alert("提示","每次只能修改一条信息。")
    }else if(num == 1){
    dyfromForm.isAdd = false;
    win.setTitle("修改信息");
    win.show();
    var <%out.print(parFieldFormer.getJsprimarykey());%>= dyformList[0]; //hhl定义主键
    loadForm(<%out.print(parFieldFormer.getJsprimarykey());%>);  //hhl定义主键
    }
    }

    //加载表单数据
    function loadForm(<%out.print(parFieldFormer.getJsprimarykey());%>){ //hhl自定义主键
    dyfromForm.form.load({
    waitMsg : '正在加载数据请稍后',//提示信息
    waitTitle : '提示',//标题
    url : 'formext.do?method=getformid',//请求的url地址  //hhl根据id取得表单信息
    params : {<%out.print(parFieldFormer.getJsprimarykey());%>:<%out.print(parFieldFormer.getJsprimarykey());%>,formid:'<%=formid%>'}, //hhl自定义主键
    method:'GET',//请求方式
    success:function(form,action){//加载成功的处理函数
    // Ext.Msg.alert('提示','数据加载成功');
    },
    failure:function(form,action){//加载失败的处理函数
    Ext.Msg.alert('提示','数据加载失败');
    }
    });
    }


    //---------------------------------------------------------------------------
    //显示删除对话框
    function showDeleteDyfrom(){
    var dyformList = getDyformIdList();
    var num = dyformList.length;
    if(num > 1){
    Ext.MessageBox.alert("提示","每次只能删除一条信息。")
    }else if(num == 1){
    Ext.MessageBox.confirm("提示","您确定要删除所选录吗?",function(btnId){
    if(btnId == 'yes'){
    var <%out.print(parFieldFormer.getJsprimarykey());%> = dyformList[0]; //hhl自定义主键
    deleteDyfrom(<%out.print(parFieldFormer.getJsprimarykey());%>); //hhl自定义主键
    }
    })
    }
    }


    function deleteDyfrom(<%out.print(parFieldFormer.getJsprimarykey());%>){//hhl自定义主键
    var msgTip = Ext.MessageBox.show({
    title:'提示',
    width : 250,
    msg:'正在删除信息请稍后......'
    });
    Ext.Ajax.request({
    url : 'formext.do?method=deleteform', //hll删除表单
    params : {<%out.print(parFieldFormer.getJsprimarykey());%> : <%out.print(parFieldFormer.getJsprimarykey());%>,formid:'<%=formid%>'}, //hhl自定义主键
    //params :{formid:'<%=formid%>'},
    method : 'GET',
    success : function(response,options){
    msgTip.hide();
    var result = Ext.util.JSON.decode(response.responseText);
    if(result.success){
    //服务器端数据成功删除后,同步删除客户端列表中的数据
    var index = headStore.find('<%out.print(parFieldFormer.getJsprimarykey());%>',<%out.print(parFieldFormer.getJsprimarykey());%>); //hhl自定义主键
    if(index != -1){
    var rec = headStore.getAt(index)
    headStore.remove(rec);
    }
    Ext.Msg.alert('提示','删除信息成功。');
    }else{
    Ext.Msg.alert('提示','该信息不能删除!');
    }
    },
    failure : function(response,options){
    msgTip.hide();
    Ext.Msg.alert('提示','删除请求失败!');
    }
    });
    }

    //取得所选记录
    function getDyformIdList(){
    var recs = dyformGrid.getSelectionModel().getSelections();
    var list = [];
    if(recs.length == 0){
    Ext.MessageBox.alert('提示','请选择要进行操作的记录!');
    }else{
    for(var i = 0 ; i < recs.length ; i++){
    var rec = recs[i];
    list.push(rec.get("<%out.print(parFieldFormer.getJsprimarykey());%>")) //hhl自定义主键
    }
    }
    return list;
    }

    });//--------------------------------------------------------------------

    </script>
    <body>
    <div id='grid-div' style="width:100%; height:100%;"/>
    </body>
    </html>
      

  2.   

    loadForm 这个方法有问题
    一般都是重新new 一个 Ext.data.HttpProxy然后load
    而且查询的参数 是要声明的 要不分页点下一页就拿不到参数了
      

  3.   

    Ext.onReady(function(){
        
           //定义数据集对象
            var headStore = new Ext.data.Store({//配置分组数据集
                baseParams: {formid:'<%=formid%>'},    
                autoLoad :true,
                reader: new Ext.data.JsonReader({
    autoLoad :true,  修改成  autoLoad :false  应该可以解决自动加载的问题!
    查询后没有结果,有可能是 loadform 函数中url : 'formext.do?method=getformid',//请求的url地址  //hhl根据id取得表单信息
    params:{<%out.print(parFieldFormer.getJsprimarykey());%>:<%out.print(parFieldFormer.getJsprimarykey());%>,formid:'<%=formid%>'}, //hhl自定义主键这里面的请求参数有问题,而且success:function(form,action){//加载成功的处理函数
                    //    Ext.Msg.alert('提示','数据加载成功');
                    },方法中,未处理查询结果
      

  4.   

    查询就是等于重新生成Storesearch : function() {

       headStore.proxy = new Ext.data.HttpProxy({
    url:'<c:url value="formext.do?method=getall"/>',
                                     params : {<%out.print(parFieldFormer.getJsprimarykey());%>:<%out.print(parFieldFormer.getJsprimarykey());%>,formid:'<%=formid%>'}, //hhl自定义主键
                                  autoLoad :true
    });
      },