新人,对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();
}
如下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();
}
最后一部分
//-----------------------------------------------------------------------------
//提交表单数据
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>
一般都是重新new 一个 Ext.data.HttpProxy然后load
而且查询的参数 是要声明的 要不分页点下一页就拿不到参数了
//定义数据集对象
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('提示','数据加载成功');
},方法中,未处理查询结果
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
});
},