以下代码,翻页时Listfg和listcz选择的值就没有了,搜出来的就是一大堆没有条件的数据,我想在有条件时搜索出来数据的基础上进行翻页,该如何做? 谢谢大家!
private void BindList()
{
string ID;
string style;
string Material;
int page = 1;
try
{
if (js.pi("page") > 0)
page = js.pi("page");
}
catch { } if (Safe(js.p("ID")) == null || Safe(js.p("ID")) == "")
ID = "BA01";
ID = Safe(js.p("ID")).Substring(0, 2); if (listcz.SelectedValue.ToString() == "按材质查询")
{
Material = "";
}
else
{
Material = Safe(listcz.SelectedValue.ToString());
} if (Listfg.SelectedValue.ToString() == "按风格查询")
{
style = "";
}
else
{
style = Safe(Listfg.SelectedValue.ToString());
} SqlParameter[] pars = new SqlParameter[]
{
new SqlParameter("@ProductsNO",ID),
new SqlParameter("@Style",style),
new SqlParameter("@Material",Material),
new SqlParameter("@Color",Safe(js.p("Color"))),
new SqlParameter("@Price",Safe(js.p("Price"))),
// new SqlParameter("@page",page),
// new SqlParameter("@pagesize",12),
};
DataSet ds = db.RunProc("procProductsSelectAll", pars, "products"); PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 12;
int CurPage;
int PageCount = ds.Tables[0].Rows.Count / objPds.PageSize;
if (ds.Tables[0].Rows.Count % objPds.PageSize > 0)
{
PageCount++;
}
if (Request.QueryString["Page"] != null)
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage = 1;
objPds.CurrentPageIndex = CurPage - 1;
this.Label1.Text = "当前为第:" + CurPage.ToString() + "页 共" + PageCount.ToString() + "页";
if (!objPds.IsFirstPage)
{
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?ID=" + ID + "&Page=" + Convert.ToString((CurPage - 1));
}
else
{
lnkPrev.EnableViewState = false;
}
if (!objPds.IsLastPage)
{
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?ID="+ID+"&Page=" + Convert.ToString(CurPage + 1);
}
else
{
lnkNext.EnableViewState = false;
} DataListtp.DataSource = objPds;
DataListtp.DataBind(); ViewState.Add("Listfg", Listfg.SelectedValue);
ViewState.Add("listcz", listcz.SelectedValue);
}
private void BindList()
{
string ID;
string style;
string Material;
int page = 1;
try
{
if (js.pi("page") > 0)
page = js.pi("page");
}
catch { } if (Safe(js.p("ID")) == null || Safe(js.p("ID")) == "")
ID = "BA01";
ID = Safe(js.p("ID")).Substring(0, 2); if (listcz.SelectedValue.ToString() == "按材质查询")
{
Material = "";
}
else
{
Material = Safe(listcz.SelectedValue.ToString());
} if (Listfg.SelectedValue.ToString() == "按风格查询")
{
style = "";
}
else
{
style = Safe(Listfg.SelectedValue.ToString());
} SqlParameter[] pars = new SqlParameter[]
{
new SqlParameter("@ProductsNO",ID),
new SqlParameter("@Style",style),
new SqlParameter("@Material",Material),
new SqlParameter("@Color",Safe(js.p("Color"))),
new SqlParameter("@Price",Safe(js.p("Price"))),
// new SqlParameter("@page",page),
// new SqlParameter("@pagesize",12),
};
DataSet ds = db.RunProc("procProductsSelectAll", pars, "products"); PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = ds.Tables[0].DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 12;
int CurPage;
int PageCount = ds.Tables[0].Rows.Count / objPds.PageSize;
if (ds.Tables[0].Rows.Count % objPds.PageSize > 0)
{
PageCount++;
}
if (Request.QueryString["Page"] != null)
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
else
CurPage = 1;
objPds.CurrentPageIndex = CurPage - 1;
this.Label1.Text = "当前为第:" + CurPage.ToString() + "页 共" + PageCount.ToString() + "页";
if (!objPds.IsFirstPage)
{
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?ID=" + ID + "&Page=" + Convert.ToString((CurPage - 1));
}
else
{
lnkPrev.EnableViewState = false;
}
if (!objPds.IsLastPage)
{
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?ID="+ID+"&Page=" + Convert.ToString(CurPage + 1);
}
else
{
lnkNext.EnableViewState = false;
} DataListtp.DataSource = objPds;
DataListtp.DataBind(); ViewState.Add("Listfg", Listfg.SelectedValue);
ViewState.Add("listcz", listcz.SelectedValue);
}
改变时的函数选择新页面Index,改变后函数重新绑定就可以了