Ext.grid.Panel表格分页存储过程
本人开发的开发者技术变现资源聚集地,大家支持下,下面是网址
https://www.baiydu.com
/*首先需要引入两个Extjs插件类 Ext.ux.data.PagingMemoryProxy和Ext.ux.ProgressBarPager这两个类*/ /*下面是控制弹出窗体放大缩小时窗体居中的方法*/
1 var HotalOrderResizeCenterWindow;
Ext.EventManager.onWindowResize(function() {
if (HotalOrderResizeCenterWindow) {
HotalOrderResizeCenterWindow.setHeight(480);
HotalOrderResizeCenterWindow.setWidth(1225);
HotalOrderResizeCenterWindow.center()
}
}); /*下面这个方法是根据加载STORE值时,控制某字段样式的*/
function changeIsOrNoReturnRoom(val) {
if (val == '未退房') {
return '<span style="color:black;">' + val + '</span>'
} else if (val == "已退房") {
return '<span style="color:red;">' + val + '</span>'
}
return val
} /*store的实体类*/
Ext.define('RoomOrder', {
extend: 'Ext.data.Model',
idProperty: 'roomorder',
fields: [{
name: 'orderId'
}, {
name: 'orderForAdmin'
}, {
name: 'orderCustomerName'
}, {
name: 'orderCustomerIDcard'
}, {
name: 'orderCustomerPhone'
}, {
name: 'orderRoomNumber'
}, {
name: 'orderRoomPrice',
type: 'float'
}, {
name: 'orderCashPledge',
type: 'float'
}, {
name: 'orderOpenRoomTime'
}, {
name: 'orderRuleReturnRoomTime'
}, {
name: 'orderCheckInDayCount'
}, {
name: 'orderIsOrNoReturnRoom'
}, {
name: 'orderReturnRoomTime'
}]
}); /*gride的store*/
var store = Ext.create('Ext.data.Store', {
model: 'RoomOrder',
pageSize: 3,/*这个参数就是每页加载数据的条数,这个参数都会在你POST或GET时,自动加为参数*/
autoLoad: true,
proxy: {
type: 'ajax',
url: 'shareMediumPage.ashx',
reader: {
root: 'data',
/*totalProperty这个字段很重要是符合查询条件的所有数据的总条数,虽然
查询时只需要查询出需要的部分,但是返回的数据中必须加上这个总数量字段,这个字段原本在你数据库的表中肯定是没有,需要你反回数据时自加上,后面数据库部分有说明*/
totalProperty: 'allCount'
},
extraParams: {
sign: '12',
loadSign: '0'
}
},
remoteSort: true,
listeners: {
beforeload: function() {}
}
});
/*gride的tabbar*/
var orderContronllerBar = Ext.create("Ext.Toolbar", {
items: ['', "-",
{
xtype: "splitbutton",
text: '未退房',
menu: true,
handler: function() {
alert("liaohang")
},
}, '', "-",
{
xtype: "splitbutton",
text: '已退房',
handler: function() {
alert("liaohang")
}
}, "关键字:",
{
xtype: 'textfield',
id: 'searchBar'
}, {
xtype: 'button',
text: "搜索",
handler: function() {
alert("al;ksdfjaljdsfljfas") store.load({
params: {
keyword: Ext.getCmp("searchBar").getValue()
}
})
}
}]
}); /*grid类*/
Ext.define('HotalOrderWindowContentPanelClass', {
extend: 'Ext.grid.Panel',
xtype: 'OrderPanelXtype',
id: "orderListGridPanel",
title: '订单',
store: store,
columns: [new Ext.grid.RowNumberer({
text: "序号",
width: 40,
dataIndex: function(value, metadata, record, rowIndex) {
return 1 + rowIndex
}
}),
{
id: 'orderCustomerName',
text: '姓名',
sortable: true,
dataIndex: 'orderCustomerName',
width: 75
}, {
text: '身份证号',
sortable: true,
dataIndex: 'orderCustomerIDcard',
width: 175
}, {
text: '电话',
sortable: true,
dataIndex: 'orderCustomerPhone',
width: 120
}, {
text: '房号',
sortable: true,
dataIndex: 'orderRoomNumber',
width: 100
}, {
text: '价格',
sortable: true,
renderer: Ext.util.Format.usMoney,
dataIndex: 'orderRoomPrice',
width: 100
}, {
text: '押金',
sortable: true,
renderer: Ext.util.Format.usMoney,
dataIndex: 'orderCashPledge',
width: 100
}, {
text: '入住时间',
sortable: true,
dataIndex: 'orderOpenRoomTime',
width: 125
}, {
text: '必须退房时间',
sortable: true,
dataIndex: 'orderRuleReturnRoomTime',
width: 125
}, {
text: '入住天数',
sortable: true,
dataIndex: 'orderCheckInDayCount',
width: 75
}, {
text: '是否退房',
sortable: true,
renderer: changeIsOrNoReturnRoom,
dataIndex: 'orderIsOrNoReturnRoom',
width: 75
}, {
text: '退房时间',
sortable: true,
dataIndex: 'orderReturnRoomTime',
width: 134
}],
stripeRows: true,
tbar: orderContronllerBar,
height: 450,
width: 1210,
frame: true,
bbar: Ext.create('Ext.PagingToolbar', {
store: store,
displayInfo: true,
plugins: Ext.create('Ext.ux.ProgressBarPager', {})
})
}) /*主窗体*/
Ext.define("HotalOrderWindowClass", {
extend: "Ext.window.Window",
requests: [],
id: 'HotalOrderManagerWindow',
xtype: 'HotalOrderManagerXtype',
title: "订单管理",
height: 480,
width: 1225,
autoRender: true,
region: 'center',
autoScroll: false,
closable: true,
border: 0,
plain: true,
layout: 'border',
closeAction: 'hide',
draggable: true,
floating: true,
items: [{
xtype: 'OrderPanelXtype',
title: '',
frame: true,
}],
listeners: {
'show': function(e) {},
'beforeshow': function(o) {
HotalOrderResizeCenterWindow = o
},
'destroy': function(o) {
HotalOrderResizeCenterWindow = null
}
}
})
/*Post页面代码 shareMediumPage.ashx*/
public void ProcessRequest(HttpContext context)
{
HttpResponse res = context.Response;
shareMediumPage master = new shareMediumPage();
HttpRequest req = context.Request;
JavaScriptSerializer jss = new JavaScriptSerializer();
int sgin =Convert.ToInt32( req["sign"]);
string adminName = "adsfasaf";
int sPage = Convert.ToInt32(req["page"]);//extjs自加的参数
int sStart = Convert.ToInt32(req["start"]);//extjs自加的参数
int sLimit = Convert.ToInt32(req["limit"]);//extjs自加的参数
//由于我们是在存储过程中处理的,所以三个参数中我们只需要两个 sPage, sLimit string currentDatetime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");
currentDatetime = Convert.ToDateTime(currentDatetime).Ticks.ToString();
res.Write(OptionLoadOrder(req["loadSign"].ToString(), adminName, currentDatetime, sPage, sLimit));
res.ContentType = "text/plain";
res.End(); }
public String OptionLoadOrder(string loadSign, string adminName, string currentDatetime, int pageIndex, int pageSize)
{ shareParameter = new SqlParameter[] { new SqlParameter("@loadSign", loadSign), new SqlParameter("@adminName", adminName), new SqlParameter("@currentDatetime", currentDatetime)
, new SqlParameter("@PageIndex", pageIndex), new SqlParameter("@PageSize", pageSize)};
SqlDataReader reader = SqlHelper.SqlHelper.ExecuteReader(SqlHelper.SqlHelper.connecString, "proc_AccodingPassTypeLoadOrder", shareParameter); ORDERLIST list = new ORDERLIST();
List<orderClass> data = new List<orderClass>(); while (reader.Read())
{
list.allCount=Convert.ToInt32(reader["allCount"]);
orderClass order = new orderClass();
order.orderId = reader["orderId"].ToString();
order.orderForAdmin = reader["orderForAdmin"].ToString(); order.orderCustomerName = reader["orderCustomerName"].ToString();
order.orderCustomerIDcard = reader["orderCustomerIDcard"].ToString();
order.orderCustomerPhone = reader["orderCustomerPhone"].ToString();
order.orderRoomNumber = reader["orderRoomNumber"].ToString();
order.orderRoomPrice = reader["orderRoomPrice"].ToString();
order.orderCashPledge = reader["orderCashPledge"].ToString();
order.orderOpenRoomTime = reader["orderOpenRoomTime"].ToString();
order.orderRuleReturnRoomTime = reader["orderRuleReturnRoomTime"].ToString();
order.orderCheckInDayCount = reader["orderCheckInDayCount"].ToString();
order.orderIsOrNoReturnRoom = reader["orderIsOrNoReturnRoom"].ToString();
order.orderReturnRoomTime = reader["orderReturnRoomTime"].ToString();
data.Add(order);
} list.data = data;
return jss.Serialize(list);
}
/*数据库存储过程*/
create proc [dbo].[proc_AccodingPassTypeLoadOrder] @loadSign varchar(50),
@adminName varchar(50),
@currentDatetime varchar(50),
@PageIndex int, /*第几页*/
@PageSize int /*每页的行数*/
as
declare @BeginRow int
declare @EndRow int set @BeginRow=@PageSize*(@PageIndex-1)+1; /*获得分页第一行所在位置*/
set @EndRow=@PageSize*@PageIndex;/*获得分页最后一行所在位置*/
declare @allCount int/*这个参数就是存放符合条件的所有数据总数量,然后加入返回数据中作为一个字段*/
if(@loadSign=0) --加载所有
begin
select @allCount=COUNT(*) from hotalOrderSheet where orderForAdmin=@adminName
select * from (select ROW_NUMBER() over(order by(orderId)) as RowIndex,@allCount as allCount, * from hotalOrderSheet where orderForAdmin=@adminName) as a
where RowIndex between @BeginRow and @EndRow
--select * from hotalOrderSheet end
else if(@loadSign=1)--未退房
begin
select @allCount=COUNT(*) from hotalOrderSheet where orderForAdmin=@adminName and orderIsOrNoReturnRoom is null and orderReturnRoomTime is null
select * from (select ROW_NUMBER() over(order by(orderId)) as RowIndex,@allCount as allCount,* from hotalOrderSheet where orderForAdmin=@adminName and orderIsOrNoReturnRoom is null and orderReturnRoomTime is null) as a
where RowIndex between @BeginRow and @EndRow end
else if(@loadSign=2)--已退房
begin select @allCount=COUNT(*) from hotalOrderSheet where orderForAdmin=@adminName and orderIsOrNoReturnRoom is not null and orderReturnRoomTime is not null
select * from (select ROW_NUMBER() over(order by(orderId)) as RowIndex,@allCount as allCount,* from hotalOrderSheet where orderForAdmin=@adminName and orderIsOrNoReturnRoom is not null and orderReturnRoomTime is not null) as a
where RowIndex between @BeginRow and @EndRow end
else if(@loadSign=3)--超时退房用户
begin select @allCount=COUNT(*) from dbo.getOverTimeReturnCustomerList(@adminName,@currentDatetime)
select * from (select ROW_NUMBER() over(order by(orderId)) as RowIndex, @allCount as allCount, * from dbo.getOverTimeReturnCustomerList(@adminName,@currentDatetime)) as a
where RowIndex between @BeginRow and @EndRow
end
下面是效果图
本人创业做的一款androidApp, 下载量已经有2000多万,各种当前热门的网络手机奖励红包全部集成,另外还有热门电影和淘宝高额优惠券!很适合各类型的用户。
Ext.grid.Panel表格分页存储过程的更多相关文章
- Ext.grid.Panel表格分页
转载:http://www.cnblogs.com/libingql/archive/2012/04/22/2464994.html cshtml @{ Layout = null; } <!D ...
- ExtJs 学习之开篇(三)Ext.grid.Panel表格中的处理
Ext.grid.Panel Ext.create('Ext.grid.Panel',{ title:'测试表格', width:400, height:20 ...
- 【extjs】 ext5 Ext.grid.Panel 分页,搜索
带有分页,搜索的grid. <%@page language="java" contentType="text/html; charset=UTF-8" ...
- [Extjs] Ext4 Ext.grid.Panel 分页实现(mybatis 分页插件-PageHelper 使用)
先看图: 页面js代码: var userStore=Ext.create('Ext.data.Store', { storeId:'userStore', fields:['uname', 'ema ...
- 完善ext.grid.panel中的查询功能(紧接上一篇)
今天的代码主要是实现,Ext.grid.panel中的查询,其实我也是一名extjs新手,开始想的实现方式是另外再创建一个新的grid类来存放查询出的数据(就是有几个分类查询就创建几个grid类),这 ...
- 【extjs】 extjs5 Ext.grid.Panel 搜索示例
先看效果图: 页面js: <script type="text/javascript"> /** * 日志类型 store * */ var logTypeStore ...
- Ext.grid.Panel 数据动态改变后刷新grid
gridPanel中加载的数据分为两种:一种是本地数据加载,那另一种就是后台数据加载. 在表格中增.删.改.查 是必不可少的. 那么数据动态改变后怎样刷新表格中的数据呢. 一.后台取数据 var gr ...
- 导出Ext.grid.Panel到excel
1.客户端定义,基本的想法是form提交表格头定义,数据,以json方式传输 Ext.grid.Panel.addMembers({ exportExcel:function(options){ if ...
- ext grid 子表格
Ext.define('app.view.main.biz.customer.receipt.followup.FollowUpActionPanel', { extend: 'Ext.grid.Pa ...
随机推荐
- EF架构~通过EF6的DbCommand拦截器来实现数据库读写分离~终结~配置的优化和事务里读写的统一
回到目录 本讲是通过DbCommand拦截器来实现读写分离的最后一讲,对之前几篇文章做了一个优化,无论是程序可读性还是实用性上都有一个提升,在配置信息这块,去除了字符串方式的拼接,取而代之的是sect ...
- H5常用代码:适配方案2
前面的通过视口做适配的方案由于安卓低版本原生浏览器的存在,在许多场合不尽如人意,会在低版本安卓上出现,不缩放,手动缩放未禁止的问题. 于是出现了第二种适配方案,既然通过视口缩放可以兼容,那为什么不直接 ...
- [常见问题]Project facet Java versin 1.8 is not support.
发生这个问题的原因是我们的java编译环境(JDK版本),与tomcat运行环境(JDK或JRE版本)不一致导致的. 到eclipse的设置中找到compile项(或右键项目进入),看一下编译环境的J ...
- Mysql 函数分类
比较重要的 1 REVERSE(s) 将字符串s的顺序反过来 2 TRIM(s) 去掉字符串s开始和结尾处的空格 一.数学函数 数学函数主要用于处理数字,包括整型.浮点数等. ...
- iOS----Xcode6或者Xcode7设置LaunchImage图标
最近设置LaunchImage图标时发现怎么都没有效果,后来发现是Xcode6中新建项目的时候会默认添加一个LaunchScreen.xib的文件,我们启动程序的时候也会发现,加载的时LaunchSc ...
- Java environment variables and their functionality
Explanations of Functionalities: 1. PATH env variable It is used to search the command directory whe ...
- 那些年我们一起过的JS闭包,作用域,this,让我们一起划上完美的句号。
之前有写过闭包,作用域,this方面的文章,但现在想想当时写的真是废话太多了,以至于绕来绕去的,让新手反而更难理解了,所以就有了此篇文章,也好和闭包,作用域,this告一段落. 第一个问题:什么是闭包 ...
- font-size:100%有什么作用
h1,h2,h3,h4,h5,h6 {font-size:100%;font-weight:normal;} input,select,textarea,samp {font-size:100%;} ...
- Android入门(六)碎片
原文链接:http://www.orlion.ga/493/ 一.碎片 碎片(Fragment)是一种可以嵌入在活动当中的 UI片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常 ...
- Strophe.js连接XMPP服务器Openfire、Tigase实现Web私聊、群聊(MUC)
XMPP(Extensible Messaging and Presence Protocol)是一种网络即时通讯协议,它基于XML,具有很强的扩展性,被广泛使用在即时通讯软件.网络游戏聊天.Web聊 ...