extjs 杂类

View Code
Ext.onReady(function(){
Ext.QuickTips.init();

//顶部工具栏
var tbar=[{
id:'btnAdd',
text:'新增',
tooltip:'新增',
iconCls:'icon-add',
handler: showaddWindows
}, '-', {
text:'修改',
handler: showeditWindows,
iconCls:'icon-edit'
}, '-', {
text:'批量删除',
//tooltip:'删除',
iconCls:'icon-remove',
handler:delall
}
];
//底部工具栏
var bbar=new Ext.PagingToolbar({
pageSize: 20,
store: store,
displayInfo: true,
displayMsg: '当前显示 {0} - {1}条记录 /共 {2}条记录',
emptyMsg: "无显示数据"


});
//json地址
var url="../json_grid/Handler.ashx";
//
var fields=[{name:"hca_art_id"},{name:"hca_art_title"},{name:"hca_art_author"},{name:"hca_art_ComputerName"},{name:"hca_art_date"}];
//多选择按钮
var sm = new Ext.grid.CheckboxSelectionModel();
//序号
var nm = new Ext.grid.RowNumberer();
//表格列选项
var cm=new Ext.grid.ColumnModel(
[nm,sm,
{header:"ID",dataIndex:"hca_art_id"},{header:"标题",dataIndex:"hca_art_title"},{header:"作者",dataIndex:"hca_art_author"},{header:"计算机名",dataIndex:"hca_art_ComputerName"},{header:"日期",dataIndex:"hca_art_date"}
] );
//store 设置
var store=new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:url}),
reader:new Ext.data.JsonReader({totalProperty:"totalCounts",root:"data",fields:fields})
});
store.load({params:{start:0,limit:20}});

//grid
var grid=new Ext.grid.GridPanel({
//el:"ext_grid",
renderTo:'ext_grid',
height:500,
store:store,
cm:cm,
sm:sm,
title:"测试",
tbar:tbar,
bbar: bbar
});
grid.render();
//鼠标双击事件-------------------------
grid.on("rowdblclick", function(grid) {
showeditWindows();
});

//右键菜单--------------------
//
为右键菜单添加事件监听器
grid.addListener('rowcontextmenu', rightClickFn);
var rightClick = new Ext.menu.Menu({
id:'rightClickCont',
items: [
{
id: 'r_add',
handler: showaddWindows,
iconCls:'icon-add',
text: '添加数据',
},{
id: 'rMenu2',
handler: showeditWindows,
text: '修改数据',iconCls:'icon-edit',

},{
text:'删除数据',
handler:delall,
iconCls:'icon-remove'
},{
text:'导出数据',
//handler:delall,
iconCls:'icon-save',
}
]
});

//右键菜单代码关键部分
function rightClickFn(grid,rowindex,e){
e.preventDefault();
rightClick.showAt(e.getXY());
}


//--------------------------------------------
//构建修改FormPanel代码
var editpanel;
var id;
function showeditPanel(){
var obj=new Ext.data.JsonReader({root:'data'},
[
{name: 'hca_art_id',mapping:'hca_art_id'},
{name: 'hca_art_title',mapping:'hca_art_title',
convert:function(v){ if(v) return Ext.util.Format.htmlDecode(v); else return "";}},
{name: 'hca_art_content',mapping:'hca_art_content',
convert:function(v){ if(v) return Ext.util.Format.htmlDecode(v); else return "";}}
] );
editpanel=new Ext.FormPanel({
labelWidth : 75, // label settings here cascade unless overridden
url: '../json_grid/edit.ashx',
frame : true,
bodyStyle : 'padding:5px 5px 0',
waitMsgTarget : true,
reader:obj,
items :[
{
xtype:'textfield',
fieldLabel: 'ID',
name: 'hca_art_id',

//values:'hca_art_id',
width: 230,
allowBlank:false
},{
xtype:'textfield',
fieldLabel: '标题',
name: 'hca_art_title',
width: 230,
allowBlank:false
},{
xtype:'textfield',
width: 230,
fieldLabel: '作者',
name: 'hca_art_author'


},{
xtype:'htmleditor',
fieldLabel: '内容',
name:'hca_art_content'
}]
});
//editpanel.render(document.body);
}
//------------------------------
//
构建修改Window代码
var editWin;
function showeditWindows(){
showeditPanel();//每次重新打开后再重新建立FormPanel
var row = grid.getSelectionModel().getSelections();
if (row.length > 0) { id = row[0].get("hca_art_id");
editpanel.form.load( {url : '../role/json/menu_edit_read.ashx',params : {hca_art_id:id}})}
else{ Ext.Msg.alert("提示消息", "请选择一行数据然后才能够编辑。<br/>如果选择多行数据,默认情况下只对第一行有效!");return false;editWin.hide();; }

editWin = new Ext.Window({
width:630,
height:500,
modal: 'true',
items: editpanel,
title:"修改数据",
buttons : [ {
text : '保存',
disabled : false,
handler : editSave
}, {
text : '取消',
handler : function() {
editpanel.form.reset();
editWin.hide();
//newwin.close();
}
}]

}).show();
}

//----------------------------------------------
//
新增frompanel面板
var addpanel;
function showaddPanel(){
addpanel=new Ext.FormPanel({
labelWidth : 75, // label settings here cascade unless overridden
frame : true,
layout: 'form',
bodyStyle : 'padding:5px 5px 0',
items :[
{
xtype:'textfield',
fieldLabel: 'ID',
name: 'hca_art_id',


width: 230,
allowBlank:true
},{
xtype:'textfield',
fieldLabel: '标题',
name: 'hca_art_title',
width: 230,
blankText:"不能为空,请填写",//
allowBlank:false
},{
xtype:'textfield',
width: 230,
fieldLabel: '作者',
name: 'hca_art_author'


},{
xtype:'htmleditor',
fieldLabel: '内容',
name:'hca_art_content',


}]
});
//addpanel.render(document.body);
}
//添加window 窗口
var addWin
function showaddWindows(){
showaddPanel();//每次重新打开后再重新建立FormPanel
addWin = new Ext.Window({
width:630,
height:500,
modal: 'true',
items: addpanel,
title:"添加数据",
buttons : [ {
text : '保存',
disabled : false,
handler : doSave
}, {
text : '取消',
handler : function() {
addpanel.form.reset();
addWin.hide();
}
}]

}).show();
}
//----------------------
//保存按钮事件
function doSave()
{

Ext.MessageBox.show({
msg: '正在保存数据, 请稍侯',
progressText: '正在保存中',
width:300,
wait:true,
waitConfig: {interval:200},
icon:'ext-mb-save',
nimEl: 'btnSave'
});
var obj=addpanel.form.getValues();
var hca_art_title=Ext.util.Format.htmlEncode(obj.hca_art_title);
var hca_art_author=Ext.util.Format.htmlEncode(obj.hca_art_author);
var hca_art_content=Ext.util.Format.htmlEncode(obj.hca_art_content);
Ext.Ajax.request({
url:'../json_grid/art_add.aspx?list=add',
params:{hca_art_title:hca_art_title,hca_art_author:hca_art_author,hca_art_content:hca_art_content},

success : function(response, options) {
var jsonobject = Ext.util.JSON.decode(response.responseText);
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示', '数据保存成功!');
addpanel.form.reset();
addWin.hide();
store.load({params:{start:0, limit:20}});
},
failure: function(form, action){
Ext.MessageBox.hide();
Ext.MessageBox.show({
title:'错误',
msg: '数据保存失败!',
buttons: Ext.Msg.OK,
icon: Ext.MessageBox.ERROR
});
}
});
}
//----------------------
//保存按钮事件
function editSave()
{

Ext.MessageBox.show({
msg: '正在保存数据, 请稍侯',
progressText: '正在保存中',
width:300,
wait:true,
waitConfig: {interval:200},
icon:'ext-mb-save',
nimEl: 'btnSave'
});
var obj=editpanel.form.getValues();
var hca_art_id=Ext.util.Format.htmlEncode(obj.hca_art_id);
var hca_art_title=Ext.util.Format.htmlEncode(obj.hca_art_title);
var hca_art_author=Ext.util.Format.htmlEncode(obj.hca_art_author);
var hca_art_content=Ext.util.Format.htmlEncode(obj.hca_art_content);

Ext.Ajax.request({
url:'../json_grid/art_add.aspx?list=edit',
method:'post',
params:{hca_art_id:hca_art_id,hca_art_title:hca_art_title,hca_art_author:hca_art_author,hca_art_content:hca_art_content},
success : function(response, options) {
Ext.MessageBox.hide();
Ext.MessageBox.alert('提示', '数据保存成功!');
editpanel.form.reset();
editWin.hide();
store.load({params:{start:0, limit:20}});
},
failure: function(form, action){

Ext.MessageBox.hide();
Ext.MessageBox.show({
title:'错误',
msg: '数据保存失败!',
buttons: Ext.Msg.OK,
icon: Ext.MessageBox.ERROR
});
}
});
}
//-----------------------
function delall(){
Ext.MessageBox.confirm('提示', '确实要删除所选的记录吗?',showResult);
}
function showResult(btn){
if(btn=='yes'){
var row = grid.getSelectionModel().getSelections();
var jsonData="";
for(var i=0;i<row.length;i++){
var ss = row[i].get("hca_art_id");
jsonData =jsonData+ ss+ ";"; //这样处理是为了删除的Lambda语句方便
}
var conn = new Ext.data.Connection();
conn.request({
url:"../json_grid/art_add.aspx?list=dell", //请注意引用的路径
params:{strdel:jsonData},
method: 'post',
scope: this,
callback:function(options,success, response){
if(success){
Ext.MessageBox.alert("提示","所选记录成功删除!");
store.load({params:{start:0, limit:25}});
}
else
{Ext.MessageBox.alert("提示","所选记录删除失败!");}
}
})
}
};

//结束代码
})//------结束

posted @ 2011-09-20 17:01  net 学习网  阅读(136)  评论(0)    收藏  举报