62,075
社区成员
发帖
与我相关
我的任务
分享
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GetddlregionSource(); //区域的数据源
string pre = txtpredate.Value + " 00:00:00";
string next = txtnextdate.Value + " 23:59:59";
string regions = ddlregion.SelectedItem.Text;
AspNetPager1.RecordCount = JICHAManager.GetAspNetPagerCount(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex,pre,next,regions); //加载时得到总页数
GetAspNetPagerSource(); //得到所有的记录
}
}
#region “得到地区的数据源”
public void GetddlregionSource()
{
IList<SEC_REGION> list = SEC_REGIONManager.GetAllRegion();
ddlregion.DataTextField = "REGION_NAME";
ddlregion.DataValueField = "REGION_ID";
ddlregion.DataSource = list;
ddlregion.DataBind();
ddlregion.Items.Insert(0, new ListItem("--全部--", "-1"));
}
#endregion
#region “提交”按钮
protected void btnsubmit_Click(object sender, EventArgs e)
{
AspNetPager1.CurrentPageIndex = 1;
string pre = txtpredate.Value + " 00:00:00";
string next = txtnextdate.Value + " 23:59:59";
string regions = ddlregion.SelectedItem.Text;
GetAspNetPagerSource();
AspNetPager1.RecordCount = JICHAManager.GetAspNetPagerCount(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex, pre, next, regions);
}
#endregion
#region “得到条件得到分页控件的数据源”
public void GetAspNetPagerSource()
{
string pre = txtpredate.Value + " 00:00:00";
string next = txtnextdate.Value + " 23:59:59";
string regions = ddlregion.SelectedItem.Text;
IList<Model.JICHA> list = JICHAManager.GetAspNetPagerSource(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex, pre, next, regions);
if (list != null)
{
Repeater1.DataSource = list;
Repeater1.DataBind();
}
else
{
ClientScript.RegisterStartupScript(GetType(), "", "<script>alert('数据不存在,请重新输入条件');</script>");
}
}
#endregion
#region “翻页”
protected void AspNetPager1_PageChanged(object sender, EventArgs e)
{
string pre = txtpredate.Value + " 00:00:00";
string next = txtnextdate.Value + " 23:59:59";
string regions = ddlregion.SelectedItem.Text;
//AspNetPager1.RecordCount = JICHAManager.GetAspNetPagerCount(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex, pre, next, regions);
GetAspNetPagerSource();
}
#endregion
}
/// <summary>
/// 根据起始时间,起始页码,地区得到所有的总页数
/// </summary>
/// <param name="start">起页码</param>
/// <param name="end">止页码</param>
/// <param name="pre">起时间</param>
/// <param name="next">止时间</param>
/// <param name="regions">地区</param>
/// <returns>总页码</returns>
public static int GetAspNetPagerCount(int start, int end, string pre, string next, string regions)
{
string sql = "";
if (pre.Length<10 && regions=="--全部--")
{ //初次加载
sql = "select count(*) from JICHA";
}
else if (pre.Length > 10 && regions == "--全部--")
{ //地区为所有地方
sql = string.Format("select count(*) from (select *, row_number() over (order by juid) as num from JICHA where J_DATE between '{0}' and '{1}' ) as newjc where num between {2} and {3}", pre, next, start, end);
}
else
{
sql = string.Format("select count(*) from (select *, row_number() over (order by juid) as num from JICHA where STORE_ADDRESS like '{0}%' and J_DATE between '{1}' and '{2}' ) as newjc where num between {3} and {4}", regions, pre, next, start, end);
}
try
{
int val =Convert.ToInt32(SqlHelper.ExecuteScalar(SqlHelper.AppConnectionString, CommandType.Text, sql, null));
if (val>0)
{
return val;
}
else
{
return 0;
}
}
catch (Exception)
{
return 0;
}
}
/// <summary>
/// 根据查询时间的起始时间和所在区域得到数据源
/// </summary>
/// <param name="start">起页码</param>
/// <param name="end">止页码</param>
/// <param name="pre">起时间</param>
/// <param name="next">止时间</param>
/// <param name="regions">所属区域</param>
/// <returns>集合</returns>
public static IList<JICHA> GetAspNetPagerSource(int start, int end, string pre, string next, string regions)
{
string sql = "";
if (regions=="--全部--" && pre.Length>10)
{
sql = string.Format("select * from (select *,row_number() over (order by juid) as num from jicha where J_DATE between '{0}' and '{1}') as newjicha where num between {2} and {3}", pre, next, start, end);
}
else if (pre.Length<10)
{
sql = string.Format("select * from (select *,row_number() over (order by juid) as num from jicha ) as newjicha where num between {0} and {1}", start, end);
}
else
{
sql = string.Format("select * from (select *,row_number() over (order by juid) as num from jicha where STORE_ADDRESS like '{0}%' and J_DATE between '{1}' and '{2}') as newjicha where num between {3} and {4}", regions, pre, next, start, end);
}
IList<JICHA> list = new List<JICHA>();
try
{
SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.AppConnectionString, CommandType.Text, sql, null);
while (reader.Read())
{
JICHA jc = new JICHA(reader);
list.Add(jc);
}
if (list!=null)
{
reader.Close();
return list;
}
else
{
reader.Close();
return null;
}
}
catch (Exception)
{
return null;
}
}