这个是 需要在 grid 中的一个列里面添加一个链接
var i = -1;
function linkWorkFlow(e){
i++;
// var ObjID = '5742437';//'<%=request.getParameter("ObjID")%>';
//var Stime = '2009-01-01';//'<%=request.getParameter("Stime")%>';
//var name = '省公路设计院公变房变压器(22442293)';//'<%=request.getParameter("name")%>';
//var objtype = '8001';//'<%=request.getParameter("objtype")%>';
//var datatypef = '5076712';//'<%=request.getParameter("datatypef")%>';
//var datetype = 'm';//'<%=request.getParameter("datetype")%>';
//var ycid = '0';//'<%=request.getParameter("ycid")%>';
//var etime = Stime;
//alert(e);
//需要7个参数
//第一个问题 ; 时间类型 我这个页面没的
var ycid = e ;
var ObjID = Tid;
var Stime = ds.getAt(i).get("etime");
var name = ds.getAt(i).get("objName");
var objtype = '8001';
var datatypef = document.getElementById("datatypef").value;
var datetype = 'd';
var serverName = Ext.query('base')[0].href;
var url = serverName+"pages/xsAnalyse/lineLossAnalyse/lineLossFlow/LineLossFlowAdd.jsp?ObjID="
+ObjID+"&Stime="+ Stime+"&name="+name+"&objtype="+objtype+"&datatypef="
+datatypef+"&datetype="+datetype+"&ycid="+ycid;
// alert(serverName);
return "<a href=/""+url+"/" >线损异常</a>";
}
这个是 一个页面的全代码 一个比较典型的 grid
//--------------------------------布局开始-----------------------
//--------toolbar----------
var dataStore= [['0', '自动化数据'], ['1', '营销数据']];
var lineStore= [['5004', '馈 线'], ['8001', '台 区']];
var refStore= [['moreThan', '>='], ['lessThan', '<=']];
var tdate= new Date();
var queryStr= location.href.split('?')[1];
var queryStr = "5004";
var queryMap= Ext.urlDecode(queryStr);
var ds;
var queryBar= new Ext.Toolbar(
{
id: 'tbar',
deferHeight: true,
items: ['开始时间',
{
xtype: 'datefield',
fieldLabel: '开始时间',
labelWidth: 100,
allowBlank: false,
id: 'startDate',
name: 'startDate',
allowBlank: false,
vtype: 'daterange',
invalidText: '时间格式为/'年-月-日/'!',
format: 'Y-m-d',
editable: true,
listeners:
{
'beforerender': function(field){
if(queryMap.startDate){
field.setValue(queryMap.startDate);
}else{
field.setValue(tdate.add(Date.DAY, -1));
}
}
}
}, '', '结束时间',
{
xtype: 'datefield',
id: 'endDate',
name: 'endDate',
allowBlank: false,
vtype: 'daterange',
invalidText: '时间格式为/'年-月-日/'!',
format: 'Y-m-d',
listeners:
{
'beforerender': function(field){
if(queryMap.endDate){
field.setValue(queryMap.endDate);
}else{
field.setValue(tdate);
}
},
'valid': function(field){
if(field.getValue() < Ext.getCmp('startDate')
.getValue()){
Ext.MessageBox.show(
{
title: '提示信息',
msg: '结束时间需大于开始时间!',
buttons:
{
ok: '确 定'
},
icon: Ext.MessageBox.INFO
});
return;
}
}
}
}, '',
'',
{
xtype: 'combo',
id: 'dataType',
name: 'dataType',
store: dataStore,
mode: 'local',
// value:'0',
editable: false,
width: 90,
triggerAction: 'all',
listeners:
{
'beforerender': function(field){
if(queryMap.dataType){
field.setValue(queryMap.dataType);
}else{
field.setValue('0');
}
}
}
}, '',
{
xtype: 'combo',
id: 'lineType',
name: 'lineType',
model: 'local',
store: lineStore,
editable: false,
value: '5004',
width: 60,
triggerAction: 'all'
},
{
xtype: 'combo',
id: 'refType',
name: 'refType',
width: 50,
fieldLabel: '线损率',
labelSeparator: '',
model: 'local',
store: refStore,
value: 'moreThan',
editable: false,
triggerAction: 'all',
listeners:
{
'beforerender': function(field){
if(queryMap.refType){
field.setValue(queryMap.refType);
}else{
field.setValue('moreThan');
}
}
}
}, '',
{
xtype: 'textfield',
id: 'lossRate',
name: 'lossRate',
value: '1',
allowBlank: false,
regex: /^/d{1,3}$/,
vtype: 'alphanum',
enableKeyEvents: true,
invalidText: '请输入不多于3位数字!',
width: 50,
listeners:
{
'beforerender': function(field){
if(queryMap.lossRate){
field.setValue(queryMap.lossRate);
}else{
field.setValue('1');
}
},
'keyup': function(field, e){
if(field.getValue() <= 0
|| field.getValue() > 100){
Ext.MessageBox.show(
{
title: '提示信息',
msg: '临时计划负荷比例应大于0且不大于100!',
buttons:
{
ok: '确 定'
},
icon: Ext.MessageBox.INFO
});
return;
}
}
}
},
{
xtype: 'tbtext',
width: 10,
text: '%'
}," "," "," "," ",{
xtype: 'button',
text: '刷 新',
iconCls: 'Trefresh',
pressed: true,
handler: function(){
queryVal('query')
}
}]
});
//----------------------------功能函数-------------------------------------------
var treeObj1005;
var Tid;
var Ttype;// 节点类型
var Ttreepath;// 树路径
var Ttreetype;// 树类型
var OwnedOrg;
function changeObj() // 重写函数,实现赋值
{
treeObj1005 = getTreeObj();
Tid = treeObj1005.Tid;// 节点id
Ttype = treeObj1005.Ttype;// 节点类型
Ttreepath = treeObj1005.Ttreepath;// 树路径
Ttreetype = treeObj1005.Ttreetype;// 树类型
};
function queryVal(type){
changeObj();
var treeObj = getTreeObj();
if (!treeObj.Tid) {
getMessageBox('请先选择查询对象!');
return;
}
var startDate= Ext.getCmp('startDate').getValue().format('Y-m-d');
var endDate= Ext.getCmp('endDate').getValue().format('Y-m-d');
var dataType= Ext.getCmp('dataType').getValue();
var lineType= Ext.getCmp('lineType').getValue();
var refType= Ext.getCmp('refType').getValue();
var lossRate= Ext.getCmp('lossRate').getValue();
//拿到 树的相关参数
if(lineType == '8001'){
// alert("台区:8001 = "+lineType);
gridPanel.hide();
tqGrid.show();
tqStore.baseParams['startDate']= startDate;
tqStore.baseParams['endDate']= endDate;
tqStore.baseParams['dataType']= dataType;
tqStore.baseParams['lineType']= lineType;
tqStore.baseParams['refType']= refType;
tqStore.baseParams['lossRate']= lossRate;
tqStore.baseParams['objid']= Tid;
tqStore.baseParams['objType']= Ttype;
tqStore.baseParams['objPath']= Ttreepath;
tqStore.baseParams['treeType']= Ttreetype;
tqStore.load();
}else{
//选择的是馈线
// alert("馈线:5004 = "+lineType);
tqGrid.hide();
gridPanel.show();
ds.baseParams['startDate']= startDate;
ds.baseParams['endDate']= endDate;
ds.baseParams['dataType']= dataType;
ds.baseParams['lineType']= lineType;
ds.baseParams['refType']= refType;
ds.baseParams['lossRate']= lossRate;
ds.baseParams['objid']= Tid;
ds.baseParams['objType']= Ttype;
ds.baseParams['objPath']= Ttreepath;
ds.baseParams['treeType']= Ttreetype;
ds.load();
}
};
//------------------------------馈线grid--------------------------------
ds= new Ext.data.Store(
{
proxy: new Ext.data.HttpProxy(
{url: 'getXSAbnormalReport.action'}),
reader: new Ext.data.JsonReader(
{
root: "root"
}, [
{
name: 'objName'
},
{
name: 'etime'
},
{
name: 'inDL'
},
{
name: 'outDL'
},
{
name: 'extDL'
},
{
name: 'objId'
},
{
name: 'handleStatus'
},
{
name: 'type',
mapping:'type.desc'
},
// {
// name: 'gbRate'
// },
// {
// name: 'fkRate'
// },
{
name: 'user'
},{
name: 'ycId'
}])
});
//cm
var cm= new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),
{
header: '馈 线',
id:'objName',
dataIndex: 'objName',
align: 'center',
sortable: true,
resizable: true
},
{
header: '分析时段',
id:'etime',
dataIndex: 'etime',
align: 'center',
sortable: true,
resizable: true
},
{
header: '输入电量',
id:'inDL',
dataIndex: 'inDL',
align: 'center',
sortable: true,
resizable: true
},
{
header: '输出电量',
id:'outDL',
dataIndex: 'outDL',
align: 'center',
sortable: true,
resizable: true
},
{
header: '线损率',
id:'extDL',
dataIndex: 'extDL',
align: 'center',
sortable: true,
resizable: true
},
{
header: '传单号',
id:'objId',
dataIndex: 'objId',
align: 'center',
sortable: true,
resizable: true
},
{
header: '异常类别',
id:'handleStatus',
dataIndex: 'handleStatus',
align: 'center',
sortable: true,
resizable: true
},
{
header: '当前状态',
id:'type',
dataIndex: 'type',
align: 'center',
sortable: true,
resizable: true
},
{
header: '公变安装率',
id:'gbRate',
dataIndex: '',
align: 'center',
sortable: true,
resizable: true
},
{
header: '负控安装率',
id:'fkRate',
dataIndex: '',
align: 'center',
sortable: true,
resizable: true
},
{
header: '负责人',
id:'user',
dataIndex: 'user',
align: 'center',
sortable: true,
resizable: true
}
,{
header: '线损异常',
id:'link',
dataIndex: 'ycId',
align: 'center',
sortable: true,
resizable: true,
renderer:linkWorkFlow
}
]);
//grid
// 数据结果
var gridPanel= new Ext.grid.GridPanel(
{
ds: ds,
cm: cm,
stripeRows: true,
loadMask:
{
msg: "数据加载中,请稍等!"
},
viewConfig:
{
forceFit: true
},
autoScroll: true,
autoSizeColumns: true,
enableColumnMove: false,
tbar: new Ext.PagingToolbar(
{
pageSize: 10,
store: ds,
displayInfo: true,
displayMsg: "显示第 {0} 条到 {1} 条记录,共 {2} 条",
emptyMsg: "无数据",
items: [
{
xtype: 'label',
width: 80
},
{
xtype: 'button',
text: '导 出',
iconCls: 'Texport',
pressed: true,
handler: function(){
queryVal('')
}
}]
})
});
//------------------------------台区grid--------------------------------
var proxy = new Ext.data.HttpProxy({
url:'getXSAbnormalReport.action'
});
var tqReader = new Ext.data.JsonReader({
totalProperty: "totalProperty",
root: "root"
},[
{
name: 'objName'
},
{
name: 'etime'
},
{
name: 'inDL'
},
{
name: 'outDL'
},
{
name: 'extDL'
},
{
name: 'objId'
},
{
name: 'type'
},
{
name: 'handleStatus'
},
{
name: 'user'
},
{
name: 'ycId'
}]);
var tqStore = new Ext.data.Store({
proxy:proxy,
reader:tqReader
});
var tqCm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(),
{
header: '台 区',
id:'objName',
dataIndex: 'objName',
align: 'center',
resizable: true
},
{
header: '分析时段',
id:'etime',
dataIndex: 'etime',
align: 'center',
resizable: true
},
{
header: '输入电量',
id:'inDL',
dataIndex: 'inDL',
align: 'center',
resizable: true
},
{
header: '输出电量',
id:'outDL',
dataIndex: 'outDL',
align: 'center',
resizable: true
},
{
header: '线损率',
id:'extDL',
dataIndex: 'extDL',
align: 'center',
resizable: true
},
{
header: '传单号',
id:'objId',
dataIndex: 'objId',
align: 'center',
resizable: true
},
{
header: '异常类别',
id:'type',
dataIndex: 'type',
align: 'center',
resizable: true
},
{
header: '当前状态',
id:'handleStatus',
dataIndex: 'handleStatus',
align: 'center',
resizable: true
},
{
header: '负责人',
id: 'user',
dataIndex: 'user',
align: 'center',
resizable: true
},
{
header: '线损异常',
id: 'link',
dataIndex: 'ycId',
align: 'center',
resizable: true,
renderer:linkWorkFlow
}]);
var tqGrid = new Ext.grid.GridPanel({
ds: tqStore,
cm: tqCm,
stripeRows: true,
loadMask:
{
msg: "数据加载中,请稍等!"
},
viewConfig:
{
forceFit: true
},
autoScroll: true,
autoSizeColumns: true,
enableColumnMove: false,
tbar: new Ext.PagingToolbar(
{
pageSize: 10,
store: ds,
displayInfo: true,
displayMsg: "显示第 {0} 条到 {1} 条记录,共 {2} 条",
emptyMsg: "无数据",
items: [
{
xtype: 'label',
width: 80
},
{
xtype: 'button',
text: '导 出',
iconCls: 'Texport',
pressed: true,
handler: function(){
queryVal('')
}
}]
})
});
var i = -1;
function linkWorkFlow(e){
i++;
var ycid = e ; //异常id
var ObjID = Tid; //树对象id
var Stime = ds.getAt(i).get("etime");//查询时间
var name = ds.getAt(i).get("objName");//树节点名称
var objtype = Ext.getCmp('lineType').getValue();// 节点类型 5004 8001
var datatypef = document.getElementById("datatypef").value;// 线损树的datatypef值
var datetype = 'd'; //日期类型
var serverName = Ext.query('base')[0].href;
var url = serverName+"pages/xsAnalyse/lineLossAnalyse/lineLossFlow/LineLossFlowAdd.jsp?ObjID="
+ObjID+"&Stime="+ Stime+"&name="+name+"&objtype="+objtype+"&datatypef="
+datatypef+"&datetype="+datetype+"&ycid="+ycid;
return "<a href=/""+url+"/" >线损异常</a>";
}
//
Ext.onReady(function(){
// 开始验证提示
Ext.QuickTips.init();
queryBar.render('ExtQuery');
gridPanel.render('ExtGrid');
gridPanel.hide();
tqGrid.render("tqGrid");
tqGrid.hide();
gridPanel.setWidth(Ext.getBody().getWidth());
gridPanel.setHeight(Ext.getBody().getHeight()
- Ext.get('ExtQuery').getHeight());
window.οnresize= function(){
queryBar.setWidth(0);
queryBar.setWidth(Ext.getBody().getWidth());
gridPanel.setWidth(0);
gridPanel.setWidth(Ext.getBody().getWidth());
gridPanel.setHeight(0);
gridPanel.setHeight(Ext.getBody().getHeight()
- Ext.get('ExtQuery').getHeight()
);
}
});