using System;
using ;
using ;
using ;
using Alif.Alif_WSAPI;
using ;
using ;
namespace
{
/// <summary>
///
/// </summary>
public class PagingCtrl
{
/// <summary>
/// Page size
/// </summary>
private int _PageSize = 50;
/// <summary>
/// Page index
/// </summary>
private int _PageIndex = 1;
/// <summary>
/// Number of records
/// </summary>
private int _RecodeCount = 0;
/// <summary>
/// Number of pages
/// </summary>
private int _PageCount = 0;
/// <summary>
/// The callback function obtains the XML data parameters to query the data
/// </summary>
/// <param name="PageIndex"></param>
/// <param name="PageSize"></param>
/// <returns></returns>
public delegate string LoadXML(int PageIndex, int PageSize);
/// <summary>
/// Events that occur after reading data are used to notify customers
/// </summary>
public delegate void afterDataLoadDelegate();
/// <summary>
/// Events that occur before reading data are prompted to wait
/// </summary>
public delegate void beforeDataLoadDelegate();
/// <summary>
///Occurs when an error occurs when reading data, used for error processing
/// </summary>
public delegate void errorDataLoadDelegate(string ErrMSG);
/// <summary>
/// Home button
/// </summary>
_btFirst;
/// <summary>
/// Front page button
/// </summary>
_btPreview;
/// <summary>
/// Next page button
/// </summary>
_btNext;
/// <summary>
///Last page button
/// </summary>
_btLast;
/// <summary>
/// Refresh button
/// </summary>
_btreflesh;
/// <summary>
/// Label for record number prompt
/// </summary>
_msg;
/// <summary>
/// Number of records per page combo
/// </summary>
_comPageSize;
/// <summary>
/// Current page index combo
/// </summary>
_comToPageIndex;
/// <summary>
/// datagridview showing data
/// </summary>
.C1FlexGrid.C1FlexGrid _dv;
LoadXML _loadxml;
afterDataLoadDelegate _afterDataLoad;
beforeDataLoadDelegate _beferDataLoad;
errorDataLoadDelegate _errorDataLoad;
public string _webseiviceComm = "";
/// <summary>
/// Constructor
/// </summary>
/// <param name="btFirst">Home</param>
/// <param name="btPreview">Previous page</param>
/// <param name="btNext">Next page</param>
/// <param name="btLast">Last Page</param>
/// <param name="btreflesh">Refresh</param>
/// <param name="msg">Total x pages, number of records: x</param>
/// <param name="PageSize">Page Size</param>
/// <param name="PageIndex">Page Index</param>
/// <param name="dv">datagridview showing data</param>
/// <param name="webseiviceComm">Command number</param>
/// <param name="loadxmlCallBack">parameters</param>
/// <param name="beferfireCallBack">Callback function processed before loading</param>
/// <param name="afterfireCallBack">Callback function processed after loading</param>
/// <param name="errorfireCallBack">Callback function for error handling</param>
public PagingCtrl( btFirst,
btPreview,
btNext,
btLast,
btreflesh,
msg,
PageSize,
PageIndex,
.C1FlexGrid.C1FlexGrid dv,
string webseiviceComm,
LoadXML loadxmlCallBack,
beforeDataLoadDelegate beferfireCallBack,
afterDataLoadDelegate afterfireCallBack,
errorDataLoadDelegate errorfireCallBack)
{
_btFirst = btFirst;
_btPreview = btPreview;
_btNext = btNext;
_btLast = btLast;
_msg = msg;
_dv = (.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 (this.btFirst_Click);
}
if (_btPreview != null)
{
_btPreview.Click += new (this.btUp_Click);
}
if (_btNext != null)
{
_btNext.Click += new (this.btNext_Click);
}
if (_btLast != null)
{
_btLast.Click += new (this.btLast_Click);
}
if (_comPageSize != null)
{
_comPageSize.SelectedIndexChanged += new (comPageSize_SelectedIndexChanged);
}
if (_comToPageIndex != null)
{
_comToPageIndex.SelectedIndexChanged += new EventHandler(comToPageIndex_SelectedIndexChanged);
_comToPageIndex.Tag = "";
}
if (_btreflesh != null)
{
_btreflesh.Click += new (this.btReflesh_Click);
}
}
/// <summary>
/// Call the webservice method to obtain data
/// </summary>
/// <param name="webservicecomm"></param>
/// <param name="Xmlcommand"></param>
public void LoadData(string webservicecomm, string Xmlcommand)
{
if (_comToPageIndex != null)
{
//Prevent program reentering
if (_comToPageIndex.Tag == null || _comToPageIndex.() == "1")
{
return;
}
_comToPageIndex.Tag = "1";
}
//Departure beforefire event
if (_beferDataLoad != null)
{
_beferDataLoad();
}
ds;
try
{
ds = LoadWebServiceData(webservicecomm, Xmlcommand);
if (!("table0"))
{
if(_dv.DataSource!=null)
{
((DataTable)_dv.DataSource).Clear();
}
}
else
{
_dv.DataSource = ["table0"];
}
this._PageSize = (["TabScript"].Rows[0]["PageSize"].ToString());
this._PageIndex = (["TabScript"].Rows[0]["PageIndex"].ToString());
this._RecodeCount = (["TabScript"].Rows[0]["Rows"].ToString());
this._PageCount = this._RecodeCount / this._PageSize + 1;
if (_comToPageIndex != null)
{
_comToPageIndex.();
for (int i = 1; i <= this._PageCount; ++i)
{
_comToPageIndex.(());
}
_comToPageIndex.Text = this._PageIndex.ToString();
}
if (_msg != null)
{
_msg.Text = "currently" + this._PageIndex + "page," + "total" + this._PageCount.ToString() + "page, number of records:" + this._RecodeCount.ToString();
}
if (_btFirst != null)
{
_btFirst.Enabled = this._PageIndex <= 1 ? 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)
{
//The webservice error occurred
if (_errorDataLoad != null)
{
_errorDataLoad("Connecting to WebService server failed (001)!\n\rError cause: " + );
}
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>
/// Load web service data
/// </summary>
/// <param name="cmdID">Command number</param>
/// <param name="para">parameters</param>
/// <returns>Dataset</returns>
private DataSet LoadWebServiceData(string cmdID, string para)
{
int tt;
string errmsg = "";
ds = new DataSet();
try
{
tt = ().Execute("DataServices", cmdID, "1", para, out errmsg, out ds);
}
catch (Exception ex)
{
//The webservice error occurred
throw new Exception("Failed to connect to the WebService server (001)!\n\rError reason: " + );
}
if (tt == 1)
{
//The data is successfully obtained
return ds;
}
else
{
//Get keystring error
throw new Exception("The server returns failure information (002)!\n\rError reason: " + errmsg);
}
}
/// <summary>
/// refresh
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btReflesh_Click(object sender, EventArgs e)
{
LoadData();
}
/// <summary>
/// Next page
/// </summary>
public void NextPage()
{
this._btNext.PerformClick();
}
/// <summary>
/// Next page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btNext_Click(object sender, EventArgs e)
{
_PageIndex++;
LoadData();
}
/// <summary>
/// Previous page
/// </summary>
public void UpPage()
{
this._btPreview.PerformClick();
}
/// <summary>
/// Previous page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btUp_Click(object sender, EventArgs e)
{
--_PageIndex;
LoadData();
}
/// <summary>
/// front page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btFirst_Click(object sender, EventArgs e)
{
_PageIndex = 1;
LoadData();
}
/// <summary>
/// front page
/// </summary>
public void FirstPage()
{
this._btFirst.PerformClick();
}
/// <summary>
/// Last page
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btLast_Click(object sender, EventArgs e)
{
_PageIndex = _PageCount;
LoadData();
}
/// <summary>
/// Last page
/// </summary>
public void LastPage()
{
this._btLast.PerformClick();
}
/// <summary>
/// combobox select to change page number
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void comPageSize_SelectedIndexChanged(object sender, EventArgs e)
{
this._PageSize = (_comPageSize.Text);
LoadData();
}
/// <summary>
/// Which page to turn to
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void comToPageIndex_SelectedIndexChanged(object sender, EventArgs e)
{
this._PageIndex = (_comToPageIndex.Text);
LoadData();
}
}
}