关于分页的全局变量
我做了一个分页程序,但多个人同时触发服务器的时候,分页的时候,出现问题,比如:10个人同时点击下一页了,当第11个人从第一页点击的时候,就直接跳到11了,我想可能是全局变量的问题。请高手指教,核心代码如下:
#region 用于首页的显示
protected void LinkButton1_Click(object sender, EventArgs e)
{
cpage = 1;
Pager pg = new Pager();
DataSet ds = new DataSet();
// ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", "Supply_id ", "supply ", 1, 30, cpage);
s_name = hidden1.Value;
s_sort = hidden2.Value;
s_prev = hidden3.Value;
if (s_name != " " || s_sort != " " || s_prev != " ")
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", s_name, s_prev, s_sort, "Supply_id ", "Supply ", 1, pagesize, cpage);
}
else
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", " ", " ", "Supply_id ", "Supply ", 1, pagesize, cpage);
}
bind(ds);
Gethl();
DropDownList1.ClearSelection();
DropDownList1.Items.FindByValue(cpage.ToString()).Selected = true;
}
#endregion
#region 用于尾页的显示
protected void LinkButton4_Click(object sender, EventArgs e)
{
cpage = Last_Page + 1;
Pager pg = new Pager();
DataSet ds = new DataSet();
//ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", "Supply_id ", "supply ", cpage, 30, cpage);
s_name = hidden1.Value;
s_sort = hidden2.Value;
s_prev = hidden3.Value;
if (s_name != " " || s_sort != " " || s_prev != " ")
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", s_name, s_prev, s_sort, "Supply_id ", "supply ", cpage, pagesize, cpage);
}
else
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", " ", " ", "Supply_id ", "supply ", cpage, pagesize, cpage);
}
bind(ds);
Gethl();
DropDownList1.ClearSelection();
DropDownList1.Items.FindByValue(cpage.ToString()).Selected = true;
}
#endregion
#region 用于上一页的显示
protected void LinkButton2_Click(object sender, EventArgs e)
{
cpage=cpage-1;
Pager pg = new Pager();
DataSet ds=new DataSet();
//ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", "Supply_id ", "supply ", cpage, 30, cpage);
s_name = hidden1.Value;
s_sort = hidden2.Value;
s_prev = hidden3.Value;
if (s_name != " " || s_sort != " " || s_prev != " ")
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", s_name, s_sort, s_prev, "Supply_id ", "supply ", cpage, pagesize, cpage);
}
else
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", " ", " ", "Supply_id ", "supply ", cpage, pagesize, cpage);
}
bind(ds);
Gethl();
DropDownList1.ClearSelection();
DropDownList1.Items.FindByValue(cpage.ToString()).Selected=true;
}
#endregion
#region 用于下一页的显示
protected void LinkButton3_Click(object sender, EventArgs e)
{
cpage=cpage+1;
Pager pg=new Pager();
DataSet ds=new DataSet();
s_name = hidden1.Value;
s_sort = hidden2.Value;
s_prev = hidden3.Value;
// ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", "Supply_id ", "supply ", cpage, 30, cpage);
if (s_name != " " || s_sort != " " || s_prev != " ")
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", s_name, s_prev, s_sort, "Supply_id ", "supply ", cpage, pagesize, cpage);
}
else
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", " ", " ", "Supply_id ", "supply ", cpage, pagesize, cpage);
}
bind(ds);
Gethl();
DropDownList1.ClearSelection();
DropDownList1.Items.FindByValue(cpage.ToString()).Selected=true;
}
#endregion
#region Dropdownlist的转向分页
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
cpage=Convert.ToInt32(DropDownList1.SelectedValue);
Pager pg=new Pager();
DataSet ds=new DataSet();
//ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", "Supply_id ", "supply ", cpage, 30, cpage);
if (s_name != " " || s_sort != " " || s_prev != " ")
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", s_name, s_sort, s_prev, "Supply_id ", "supply ", cpage, pagesize, cpage);
}
else
{
ds = pg.GetCurrentDataSet( "Supply_id,Supply_name,Supply_area,Supply_type,Supply_Linkman,Supply_issuance ", " ", " ", " ", "Supply_id ", "supply ", cpage, pagesize, cpage);
}
bind(ds);
Gethl();
}
#endregion
//分页
#region
#endregion
#region 搜索
protected void Button1_Click(object sender, EventArgs e)
{
hidden1.Value = SqlZhuru.SQLzhuru(TextBox2.Text.ToString());
hidden2.Value = Supply_area.Text.ToString();
hidden3.Value = Supply_type2.Text.ToString();
Databind_first();
}
#endregion
protected void Submit1_ServerClick(object sender, EventArgs e)
{
Response.Redirect( "../member_page/user/mdealer/mdealer_issue.aspx ");
}
protected void preview(string s_sql,DataGrid gr)
{
SqlConnection mycon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings[ "Str_sql "].ToString());
mycon.Open();
SqlDataAdapter pter = new SqlDataAdapter(s_sql, mycon);
DataSet ds = new DataSet();
pter.Fill(ds, "tablename ");
gr.DataSource = ds.Tables[ "tablename "];
gr.DataBind();
ds.Dispose();
mycon.Close();
}
[解决办法]
因为你的全局变量(全部页数、当前页)任何一个访问者都共用 这样当然不行
你用session或ViewState保存 这样大家就不相干涉了 建议用ViewState 因为它只在当前页有效 否则同一用户在访问不同页面时可能也会出错