c# 简单的通用基础字典
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Alif.Alif_WSAPI;
using System.Data;
using System.Windows.Forms; namespace Alif.AlifForm.CommClass
{
/// <summary>
///
/// </summary>
public class PagingCtrl
{
/// <summary>
/// 页大小
/// </summary>
private int _PageSize = ; /// <summary>
/// 页索引
/// </summary>
private int _PageIndex = ; /// <summary>
/// 记录数
/// </summary>
private int _RecodeCount = ; /// <summary>
/// 页数
/// </summary>
private int _PageCount = ; /// <summary>
/// 回调函数获取要查询数据的XML数据参数
/// </summary>
/// <param name="PageIndex"></param>
/// <param name="PageSize"></param>
/// <returns></returns>
public delegate string LoadXML(int PageIndex, int PageSize); /// <summary>
/// 在读取数据后发生的事件,用于通知客户
/// </summary>
public delegate void afterDataLoadDelegate(); /// <summary>
/// 在读取数据前发生的事件,提示客户等待
/// </summary>
public delegate void beforeDataLoadDelegate(); /// <summary>
/// 在读取数据发生错误时发生,用于错误处理
/// </summary>
public delegate void errorDataLoadDelegate(string ErrMSG); /// <summary>
/// 首页按钮
/// </summary>
System.Windows.Forms.Button _btFirst; /// <summary>
/// 前页按钮
/// </summary>
System.Windows.Forms.Button _btPreview; /// <summary>
/// 下一页按钮
/// </summary>
System.Windows.Forms.Button _btNext; /// <summary>
/// 末页按钮
/// </summary>
System.Windows.Forms.Button _btLast; /// <summary>
/// 刷新按钮
/// </summary>
System.Windows.Forms.Button _btreflesh; /// <summary>
/// 记录数提示Label
/// </summary>
System.Windows.Forms.Label _msg; /// <summary>
/// 每页记录数combo
/// </summary>
System.Windows.Forms.ComboBox _comPageSize; /// <summary>
/// 当前页索引combo
/// </summary>
System.Windows.Forms.ComboBox _comToPageIndex; /// <summary>
/// 显示数据的datagridview
/// </summary>
C1.Win.C1FlexGrid.C1FlexGrid _dv; LoadXML _loadxml;
afterDataLoadDelegate _afterDataLoad;
beforeDataLoadDelegate _beferDataLoad;
errorDataLoadDelegate _errorDataLoad; public string _webseiviceComm = ""; /// <summary>
/// 构造函数
/// </summary>
/// <param name="btFirst">首页</param>
/// <param name="btPreview">上一页</param>
/// <param name="btNext">下一页</param>
/// <param name="btLast">末页</param>
/// <param name="btreflesh">刷新</param>
/// <param name="msg">共x页,记录数:x</param>
/// <param name="PageSize">页大小</param>
/// <param name="PageIndex">页索引</param>
/// <param name="dv">显示数据的datagridview</param>
/// <param name="webseiviceComm">命令编号</param>
/// <param name="loadxmlCallBack">参数</param>
/// <param name="beferfireCallBack">加载之前处理的回调函数</param>
/// <param name="afterfireCallBack">加载之后处理的回调函数</param>
/// <param name="errorfireCallBack">错误处理的回调函数</param>
public PagingCtrl(System.Windows.Forms.Button btFirst,
System.Windows.Forms.Button btPreview,
System.Windows.Forms.Button btNext,
System.Windows.Forms.Button btLast,
System.Windows.Forms.Button btreflesh,
System.Windows.Forms.Label msg,
System.Windows.Forms.ComboBox PageSize,
System.Windows.Forms.ComboBox PageIndex,
C1.Win.C1FlexGrid.C1FlexGrid dv,
string webseiviceComm,
LoadXML loadxmlCallBack,
beforeDataLoadDelegate beferfireCallBack,
afterDataLoadDelegate afterfireCallBack,
errorDataLoadDelegate errorfireCallBack)
{
_btFirst = btFirst;
_btPreview = btPreview;
_btNext = btNext;
_btLast = btLast;
_msg = msg;
_dv = (C1.Win.C1FlexGrid.C1FlexGrid)dv;
_loadxml = loadxmlCallBack;
_webseiviceComm = webseiviceComm;
_comPageSize = PageSize;
_comToPageIndex = PageIndex;
_btreflesh = btreflesh;
_beferDataLoad = beferfireCallBack;
_afterDataLoad = afterfireCallBack;
_errorDataLoad = errorfireCallBack; if (_btFirst != null)
{
_btFirst.Click += new System.EventHandler(this.btFirst_Click);
}
if (_btPreview != null)
{
_btPreview.Click += new System.EventHandler(this.btUp_Click);
}
if (_btNext != null)
{
_btNext.Click += new System.EventHandler(this.btNext_Click);
}
if (_btLast != null)
{
_btLast.Click += new System.EventHandler(this.btLast_Click);
} if (_comPageSize != null)
{
_comPageSize.SelectedIndexChanged += new System.EventHandler(comPageSize_SelectedIndexChanged);
}
if (_comToPageIndex != null)
{
_comToPageIndex.SelectedIndexChanged += new EventHandler(comToPageIndex_SelectedIndexChanged);
_comToPageIndex.Tag = "";
}
if (_btreflesh != null)
{
_btreflesh.Click += new System.EventHandler(this.btReflesh_Click);
}
} /// <summary>
/// 调用webservice 方法获取数据
/// </summary>
/// <param name="webservicecomm"></param>
/// <param name="Xmlcommand"></param>
public void LoadData(string webservicecomm, string Xmlcommand)
{
if (_comToPageIndex != null)
{
//防止程序重入
if (_comToPageIndex.Tag == null || _comToPageIndex.Tag.ToString() == "")
{
return;
}
_comToPageIndex.Tag = "";
} //出发beforefire事件
if (_beferDataLoad != null)
{
_beferDataLoad();
} System.Data.DataSet ds; try
{
ds = LoadWebServiceData(webservicecomm, Xmlcommand); if (!ds.Tables.Contains("table0"))
{
if(_dv.DataSource!=null)
{
((DataTable)_dv.DataSource).Clear();
}
}
else
{ _dv.DataSource = ds.Tables["table0"]; } this._PageSize = Int32.Parse(ds.Tables["TabScript"].Rows[]["PageSize"].ToString());
this._PageIndex = Int32.Parse(ds.Tables["TabScript"].Rows[]["PageIndex"].ToString());
this._RecodeCount = Int32.Parse(ds.Tables["TabScript"].Rows[]["Rows"].ToString());
this._PageCount = this._RecodeCount / this._PageSize + ; if (_comToPageIndex != null)
{
_comToPageIndex.Items.Clear();
for (int i = ; i <= this._PageCount; ++i)
{
_comToPageIndex.Items.Add(i.ToString()); }
_comToPageIndex.Text = this._PageIndex.ToString();
} if (_msg != null)
{
_msg.Text = "当前第" + this._PageIndex + "页," + "共" + this._PageCount.ToString() + "页,记录数:" + this._RecodeCount.ToString();
} if (_btFirst != null)
{
_btFirst.Enabled = this._PageIndex <= ? false : true;
}
if (_btPreview != null)
{
_btPreview.Enabled = _btFirst.Enabled;
}
if (_btLast != null)
{
_btLast.Enabled = this._PageIndex >= this._PageCount ? false : true;
} if (_btLast != null)
{
_btLast.Enabled = _btLast.Enabled;
}
}
catch (Exception ex)
{
//发生webservice错误
if (_errorDataLoad != null)
{
_errorDataLoad("连接WebService服务器失败(001)!\n\r错误原因:" + ex.Message);
}
if (_comToPageIndex != null)
{
_comToPageIndex.Tag = "";
}
} if (_afterDataLoad != null)
{
_afterDataLoad();
} if (_comToPageIndex != null)
{
_comToPageIndex.Tag = "";
}
} /// <summary>
///
/// </summary>
/// <param name="XmlComm"></param>
public void LoadData(string XmlComm)
{
LoadData(_webseiviceComm, XmlComm); } /// <summary>
///
/// </summary>
public void LoadData()
{
LoadData(_webseiviceComm, _loadxml(this._PageIndex, this._PageSize));
} /// <summary>
/// 加载web服务数据
/// </summary>
/// <param name="cmdID">命令编号</param>
/// <param name="para">参数</param>
/// <returns>数据集</returns>
private DataSet LoadWebServiceData(string cmdID, string para)
{
int tt;
string errmsg = "";
System.Data.DataSet ds = new DataSet();
try
{
tt = WebService.GetInstance(CommonInfo.LoginInfo.userParameters).Execute("DataServices", cmdID, "", para, out errmsg, out ds);
}
catch (Exception ex)
{
//发生webservice错误
throw new Exception("连接WebService服务器失败(001)!\n\r错误原因:" + ex.Message);
} if (tt == )
{
//获取数据成功
return ds;
}
else
{
//获取keystring错误
throw new Exception("服务器返回失败信息(002)!\n\r错误原因:" + errmsg);
}
} /// <summary>
/// 刷新
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btReflesh_Click(object sender, EventArgs e)
{
LoadData();
} /// <summary>
/// 下一页
/// </summary>
public void NextPage()
{
this._btNext.PerformClick();
} /// <summary>
/// 下一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btNext_Click(object sender, EventArgs e)
{
_PageIndex++;
LoadData();
} /// <summary>
/// 上一页
/// </summary>
public void UpPage()
{
this._btPreview.PerformClick();
} /// <summary>
/// 上一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btUp_Click(object sender, EventArgs e)
{
--_PageIndex;
LoadData();
} /// <summary>
/// 首页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btFirst_Click(object sender, EventArgs e)
{
_PageIndex = ;
LoadData();
} /// <summary>
/// 首页
/// </summary>
public void FirstPage()
{
this._btFirst.PerformClick();
} /// <summary>
/// 最后一页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btLast_Click(object sender, EventArgs e)
{
_PageIndex = _PageCount;
LoadData();
} /// <summary>
/// 最后一页
/// </summary>
public void LastPage()
{
this._btLast.PerformClick();
} /// <summary>
/// combobox选择改变页号
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void comPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
this._PageSize = Int32.Parse(_comPageSize.Text);
LoadData();
} /// <summary>
/// 翻到第几页
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void comToPageIndex_SelectedIndexChanged(object sender, EventArgs e)
{
this._PageIndex = Int32.Parse(_comToPageIndex.Text);
LoadData();
}
}
}
c# 简单的通用基础字典的更多相关文章
- python基础—字典
阅读文本需要3分钟,不建议跳读 节目清单 字典是python中最重要的数据类型,字典由“键-值”对组成的集合,字典中的“值”通过“键”来引用.这里将介绍字典的定义.访问.排序等功能. 字典的创建 字典 ...
- 一个简单的通用Makefile实现
一个简单的通用Makefile实现 Makefile是Linux下程序开发的自动化编译工具,一个好的Makefile应该准确的识别编译目标与源文件的依赖关系,并且有着高效的编译效率,即每次重新ma ...
- 【RL-TCPnet网络教程】第38章 TFTP简单文件传输基础知识
第38章 TFTP简单文件传输基础知识 本章节为大家讲解TFTP(Trivial File Transfer Protocol,简单文件传输协议)的基础知识,方便后面章节的实战操作. (本章 ...
- python基础--字典
Python基础--字典 字典的常用函数: dict.clear( )--->无任何返回值 说明: 清除字典内的所有的元素 语法: In [5]: dict.clear? Type: metho ...
- C#中使用泛型对照使用通用基础类型效率减少近一倍
C#中使用泛型对照使用通用基础类型效率减少近一倍 以下是測试结果: CSharp class and generic TotalMilliseconds: 270772.9229CSharp g ...
- Master-Slave通用基础框架
一.设计目的 设计出一个通用的Master-Slave基础框架,然后可以基于这个框架来实现特定的业务需求,比如实现多节点并行计算.分布式处理等. 二.设计理念 基于经典的命令模式,Master和Sla ...
- 简单的通用TreeView(WPF)
工作中要为很多类创建TreeView, 很多时候仅仅是因为要显示字段不同, 就得Ctrl+C.Ctrl+V复制一份几乎相同的代码, 这难免让人生厌, 于是希望像泛型集合的扩展方法那样, 可以在使用的时 ...
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
- css简单的一些基础知识
css层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言.CSS不仅可 ...
随机推荐
- 让EditText不能自动获取焦点
在activity中放置了1个或1个以上的EditText,进入该activity的时候第一个EditText会接收焦点,我希望里面所有的EditText默认是不接收焦点的,该怎么做呢? 方法: 在第 ...
- Spring+Ibatis集成开发实例
首先简历数据库demo(本文选mysql) 数据库脚本: CREATE TABLE `ibatis` ( `id` varchar(20) NOT NULL, `name` varchar(20) ...
- Hanoi Tower问题分析
前言 回家休息第3天了,状态一直不是太好,主要是要补牙,检查身体,见同学见亲戚,心里又着急校招,难得能腾出时间来好好思考,这里也是看<cracking the coding interview& ...
- 异常捕捉 ( try catch finally ) 你真的掌握了吗?
前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理? finally 体遇到 return 怎么办?finally 体里有 System.exit ...
- Android Socket编程学习笔记
http://blog.csdn.net/eyu8874521/article/details/8847173 度娘给出的描述:通常也称作"套接字",用于描述IP地址和端口,是一个 ...
- 教你使用Android SDK布局优化工具layoutopt
创建好看的Android布局是个不小的挑战,当你花了数小时调整好它们适应多种设备后,你通常不想再重新调整,但笨重的嵌套布局效率往往非常低下,幸运的是,在Android SDK中有一个工具可以帮助你优化 ...
- 让java程序在后台一直执行(例如putty关闭后后台程序继续运行)
如果在终端中执行java -jar xxx.jar&命令,当终端关闭时,xxx.jar也会同时结束运行,但是如果执行nohup java -jar xxx.jar&命令,则程序会在后台 ...
- 文件尾存在EOF吗?
参考:http://bbs.csdn.net/topics/290027166 我們先一起來看看FILE是怎么定義的: FILE <STDI ...
- 奇异值分解(SVD) --- 几何意义
原文:http://blog.sciencenet.cn/blog-696950-699432.html PS:一直以来对SVD分解似懂非懂,此文为译文,原文以细致的分析+大量的可视化图形演示了SVD ...
- PHP: 深入pack/unpack 字节序
http://my.oschina.net/goal/blog/195749?p=1 目录[-] 写在前面的话 什么是字节序 MSB和LSB 大端序 小端序 网络字节序 主机字节序 总结 pack/u ...