ext高级查询弹出框


Ext.onReady(function(){
Ext.BLANK_IMAGE_URL ='s.gif';
Ext.form.Field.prototype.msgTarget = 'side';
Ext.get("addware").addListener("click",addware);
function addware(){
var form=createForm('msd');
var grdDPQuery=createGrid('msd');
var forma=createForma('msd');
var grida=createGrida('msd');
var win1 = new Ext.Window({
title: '高级查询',
modal:true,
closable:true,
width: 500,
height:500,
plain: true,
buttons:[
{text:"查询",
handler: function(){
sumbit();//掉用提交数据的方法
}
},{
text: "取消",
handler: function(){
win1.close();//关闭弹出框
}
}],
items:[form,grdDPQuery,forma,grida]
});
win1.show();

function createGrid(msd){
sm1=new Ext.grid.RowSelectionModel();
var dsPQ=new Ext.data.JsonStore({
data:[" "," "," "],
fields:["idx","relation","leftParenthesis","fieldname"]
});
//运算符
function fileListChange(field,newValue,oldValue){
//alert(field);
}
/*var fieldsDef =new Ext.data.SimpleStore({
fields: ['value','text'],
data : [['VARCHAR','政府'],['INT','部门'],['DATE','集团']]
});*/

var fieldsDef = new Ext.data.JsonStore({
fields: ['value','text','type','data'],
data:[
{value:'政府',text:'政府',type:'VARCHAR'},
{value:'部门',text:'部门',type:'INT'},
{value:'集团',text:'集团',type:'DATE'}

]
});

var lists=new Array();
lists[0]=new Array();
lists[0]=['政府','部门','集团'];
lists[1]=new Array();
lists[1]=['zhengfu','bumen','jituan'];
lists[2]=new Array();
lists[2]=['VARCHAR','INT','DATE'];

//定义一个数组来存储查询条件的值(如果是varchar就把cities[1]付给查询条件)
var cities = new Array();
cities[1] = [['=','等于'],['!=','不等于'],["like '%|%'",'包含'],["not like '%|%'",'不包含']];
cities[2] = [['=','='],['>','>'],['<','<'],['>=','>='],['<=','<='],['!=','!=']];
var date='VARCHAR';
function onchange(ab){
var type="";
for(var i=0;i<lists.length;i++){
for(var j=0;j<lists[i].length;j++){
if(lists[i][j]==ab){
type=lists[2][j];

}
}
}
if(type=="VARCHAR"){
comboCities.store.loadData(cities[1]);
date='VARCHAR';
}
else if(type=="INT"){
comboCities.store.loadData(cities[2]);
date='INT';
}
else if(type=="DATE"){
comboCities.store.loadData(cities[2]);
date='DATE';

}
}

var objGridLookupEditor;
var qRowData = Ext.data.Record.create([
{name:'idx',type:'int'},
{name:'relation',type:'string'},
{name:'leftParenthesis',type:'string'},
{name:'fieldname',type:'string'}
]);
var colM=new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer({header:"No.",width:25}),
{
header:"关键字",
dataIndex:"relation",
width:200,

editor:new Ext.form.ComboBox({
store: fieldsDef,
mode: 'local',
triggerAction: 'all',
valueField: 'value',
displayField: 'text',
editable: false,
listeners:{
change:function(){
onchange(this.value);
}
}
})

},{
header:"查询条件",
dataIndex:"leftParenthesis",
width:100,
editor:comboCities=new Ext.form.ComboBox({
store: new Ext.data.SimpleStore({
fields: ['cityId','cityName'],
data:[]
}),
valueField :"cityId",
displayField: "cityName",
mode: 'local',
triggerAction: 'all',
editable: false
})
},{

header:"关键字",
dataIndex:"fieldname",
name:"file",
id:"file",
width:144,
renderer:Ext.util.Format.dateRenderer('Y-m-d'),
sortable:true
}
]);

var grdDPQuery = new Ext.grid.EditorGridPanel({
width: 480,
height:130,
region:'south',
renderTo:"hello",
stripeRows:true,//斑马线效果
loadMask:true,
cm:colM,
sm:sm1,
store:dsPQ,
border: false,
enableColumnMove: false,
enableHdMenu: false,
loadMask: {msg:'加载数据...'},
clicksToEdit:1,

bbar:[
{text:'添加',handler:function(){
var count = dsPQ.getCount();
var r = new qRowData({idx:dsPQ.getCount(),relation:'',leftParenthesis:'',fieldname:''});
dsPQ.commitChanges();
dsPQ.insert(count,r);
}
},
{text:'删除',handler:function(){
var reod =sm1.getSelected();
if(reod==null){
alert("请选择一行");
return;
}
if(dsPQ.getCount()==1){
stoll=dsPQ.getRange(0,dsPQ.getCount());
stoll[0].set('idx',"");
stoll[0].set('relation',"");
stoll[0].set('leftParenthesis',"");
stoll[0].set('fieldname',"");
return;
}
dsPQ.remove(reod);
sm1.clearSelections();
dsPQ.getView().refresh();
}
},
{text:'全部清除',handler:function(){dsPQ.removeAll();}}
],
listeners:{ //加载到网格中\
cellclick:function(grid,rowIndex,columnIndex,e){
// alert("sdfsdf"+date);
//当是日期型的时候就调用时期组件
if (columnIndex==3&&date=='DATE'){//绑定运算符
var grdEditor = grid.colModel.getCellEditor(columnIndex,rowIndex);
if (grdEditor)
grdEditor.destroy();
grdEditor =new Ext.form.DateField({format:'Y年m月d日'})
grid.colModel.setEditor(columnIndex, new Ext.grid.GridEditor(grdEditor));
}//当调用数字型的时候就调用文本输入框组件
else if(columnIndex==3&&date=='INT'){//绑定编辑器
var record = grid.getStore().getAt(rowIndex); // Get the Record
var operator = record.get('operator');
if (operator=='is null'||operator=='is not null'){
grid.colModel.setEditor(columnIndex, null);
return;
}
var grdEditor = grid.colModel.getCellEditor(columnIndex,rowIndex);
if (grdEditor)
grdEditor.destroy();
grdEditor =new Ext.form.TextField()

grid.colModel.setEditor(columnIndex, new Ext.grid.GridEditor(grdEditor));
}//当调用数字型的时候就调用下拉分页列表组件
else if(columnIndex==3&&date=='VARCHAR'){
var record = grid.getStore().getAt(rowIndex); // Get the Record
var operator = record.get('operator');
if (operator=='is null'||operator=='is not null'){
grid.colModel.setEditor(columnIndex, null);
return;
}
var grdEditor = grid.colModel.getCellEditor(columnIndex,rowIndex);
if (grdEditor)
grdEditor.destroy();
grdEditor =new Ext.form.TextField()
grid.colModel.setEditor(columnIndex, new Ext.grid.GridEditor(grdEditor));

}
}
}
});
//把grid中的值传入到textarea中
grdDPQuery.addListener('afteredit',rowdblclick); //被编辑后的记录
function rowdblclick(e){
var record =e.record;
var allmost="";
var arrlylist="";
var attle=0;
var sto1=dsPQ.getRange(0,dsPQ.getCount());
for(var i=0;i<dsPQ.getCount();i++){
allmost+=++attle+" "+sto1[i].get("relation")+" "+sto1[i].get("leftParenthesis")+" "+sto1[i].get("fieldname")+'\n';
arrlylist+=sto1[i].get("relation")+"ж"+sto1[i].get("leftParenthesis")+"ж"+sto1[i].get("fieldname")+'*'
}
Ext.get("gril1").dom.value=arrlylist;
// document.getElementById("sdsss").value=allmost;
}

return grdDPQuery;

}


//定义一个form表单
function createForm(msd){
var form = new Ext.form.FormPanel({

labelAlign: 'top',
frame:true,
region:'center',
bodyStyle:'padding:5px 5px 0',
width: 480,
height:80,
layout : "column",
items: [{
layout:'column',
items:[{
xtype:'label',
fieldLabel:'a',
html:'<font color=#808080 style="font-size:12px">设置查询条件<br>  字段:<br>    ·在下面的行中设定字段的限定条件<br>    ·查询条件会在下面的文本区域中组合<br>    ·你可以改变条件的组合方式(如1or(2 and 3))</font>'
}]
}]

});
return form;
}
function createForma(msd){
var forma = new Ext.form.FormPanel({
labelAlign: 'top',
frame:true,
region:'center',
bodyStyle:'padding:5px 5px 0',
width: 500,
height:110,
layout : "column",
items: [{
xtype:'textarea',
fieldLabel: '',
name: 'sdsss',
style:"overflow-y:scroll",
value: '',
height: '15mm',
width:'120mm',
anchor:'95%'
},{
layout:'column',
items:[{
xtype:'label',
fieldLabel:'ass',
html:'  '
}]
},{
layout:'column',
items:[{
xtype:'label',
fieldLabel:'a',
html:'<font color=#808080 style="font-size:12px">设置查询条件<br>    ·在下面的行中自定义设定查询条件</font>'
}]
}]

});
return forma;
}
function createGrida(msd){
var dsPQ=new Ext.data.JsonStore({
data:[],
fields:["idx","relation","leftParenthesis","fieldname1"]
});

var objGridLookupEditor;

var qRowData = Ext.data.Record.create([
{name:'idx',type:'int'},
{name:'relation',type:'string'},
{name:'leftParenthesis',type:'string'},
{name:'fieldname1',type:'string'}
]);
var colM=new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer({header:"No.",width:25}),
{header:"关键字",
css:"background:#fcfbc3;",
width:200,
dataIndex:"relation",
sortable:true,
editor:new Ext.form.TextField2()
},{
header:"查询条件",
dataIndex:"leftParenthesis",
width:100,
editor:new Ext.form.ComboBox({
store: ['==','>','<','>=','<=','!='],
mode: 'local',
triggerAction: 'all',
valueField: 'value',
displayField: 'text',
editable: false
})
},{
header:"关键字",
css:"background:#fcfbc3;",
dataIndex:"fieldname1",
width:144,
editor:new Ext.form.TextField2()
}
]);
sm=new Ext.grid.RowSelectionModel();
var grida = new Ext.grid.EditorGridPanel({
width: 480,
height:100,
region:'south',
renderTo:"hello",
sm:sm,
cm:colM,
store:dsPQ,
border: false,
enableColumnMove: false,
enableHdMenu: false,
loadMask: {msg:'加载数据...'},
clicksToEdit:1,
bbar:[
{text:'添加',handler:function(){
var count = dsPQ.getCount();
var r = new qRowData({idx:dsPQ.getCount(),relation:'',leftParenthesis:'',fieldname1:''});
dsPQ.commitChanges();
dsPQ.insert(count,r);
}
},
{text:'删除',handler:function(){
var reod =sm.getSelected();
if(reod==null){
alert("请选择一行");
return;
}
if(dsPQ.getCount()==1){
stoll=dsPQ.getRange(0,dsPQ.getCount());
stoll[0].set('idx',"");
stoll[0].set('relation',"");
stoll[0].set('leftParenthesis',"");
stoll[0].set('fieldname1',"");
return;
}
dsPQ.remove(reod);
sm.clearSelections();
dsPQ.getView().refresh();
}
},
{text:'全部清除',handler:function(){dsPQ.removeAll();}}
]
});
//获得网格中的值
grida.addListener('afteredit',rowdblclick); //被编辑后的记录
function rowdblclick(e){
var record =e.record;
var allmost="";
var arrlylist="";
var a=record.get("idx");
var b=record.get("relation");
var c=record.get("leftParenthesis");
var d=record.get("fieldname1");
var sto1=dsPQ.getRange(0,dsPQ.getCount());
for(var i=0;i<dsPQ.getCount();i++){
arrlylist+=sto1[i].get("relation")+"ж"+sto1[i].get("leftParenthesis")+"ж"+sto1[i].get("fieldname1")+'*'
}
//alert(arrlylist);
Ext.get("gril2").dom.value=arrlylist;
}
return grida;
}
}

//提交查询数据
function sumbit(){
var all="";
var all1="";
all=Ext.get("gril1").dom.value;

all1=Ext.get("gril1").dom.value;
//var aa=document.getElementById("sdsss").value;
//alert(aa);
Ext.Ajax.request({
url:'',
method:'post',
success: function(response,options){
var result=response.responseText;
if(result==1){
Ext.MessageBox.alert('操作信息','查询成功!');
}else{
Ext.MessageBox.alert('操作信息','查询失败,请检查数据是否正确');
}
},
params: {all:all,all1:all1}
});

}
});
</script>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值