我想在系统中实现一个报表系统,是这样运行的
用户输入某个查询条件进行搜索,系统用gridview显示搜索结果,为了方便用户选择所以搜索出的查询 条件是 多个,用户在搜索结果中按需要选择多个结果然后返回主界面,搜索的结果则添加到主界面相应的gridview中用来作为查询条件。
由于是报表系统,所以有n个gridview以收集不同的信息
现在的代码是这样的
GridView1是用来放置搜索结果的
主界面GridView2是用来放置用来做查询的
由于某一查询条件如人员,要多次搜索,所以GridView2必需能够多次更新或增加新行
ArrayList gwlist = new ArrayList();
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
usr.Userid = Convert.ToInt32(GridView1.Rows[i].Cells[1].Text);
usr.Usercode = GridView1.Rows[i].Cells[2].Text;
usr.Username = GridView1.Rows[i].Cells[3].Text;
if (Session["shous"] != null)
{
gwlist = (ArrayList)Session["shous"];
}
gwlist.Add(usr);
Session["shous"] = gwlist;
}
} if (Session["shous"] != null)
{
IList gwsp = (ArrayList)Session["shous"]; GridView2.DataSource = gwsp;
GridView2.DataBind();
}GridView应用session报表ArrayList
用户输入某个查询条件进行搜索,系统用gridview显示搜索结果,为了方便用户选择所以搜索出的查询 条件是 多个,用户在搜索结果中按需要选择多个结果然后返回主界面,搜索的结果则添加到主界面相应的gridview中用来作为查询条件。
由于是报表系统,所以有n个gridview以收集不同的信息
现在的代码是这样的
GridView1是用来放置搜索结果的
主界面GridView2是用来放置用来做查询的
由于某一查询条件如人员,要多次搜索,所以GridView2必需能够多次更新或增加新行
ArrayList gwlist = new ArrayList();
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
usr.Userid = Convert.ToInt32(GridView1.Rows[i].Cells[1].Text);
usr.Usercode = GridView1.Rows[i].Cells[2].Text;
usr.Username = GridView1.Rows[i].Cells[3].Text;
if (Session["shous"] != null)
{
gwlist = (ArrayList)Session["shous"];
}
gwlist.Add(usr);
Session["shous"] = gwlist;
}
} if (Session["shous"] != null)
{
IList gwsp = (ArrayList)Session["shous"]; GridView2.DataSource = gwsp;
GridView2.DataBind();
}GridView应用session报表ArrayList
如选择了张三李四
结果李四被两次添加到GridView2中
if (Session["shous"] != null)
{
gwlist = (ArrayList)Session["shous"];
}
放在循环之前赋值Session["shous"] = gwlist; 这个放在循环之外
如,用户要查询某些员工的信息,比如按姓名查询李姓6名员工张姓5名员工王姓7名员工,用户输入李然后搜索,系统返回所有李姓员工,用户选择6名员工后信息添加到GridView2中……如此反复,将18名员工的信息添加到GridView2,然后执行查询操作,从GridView2中读取信息作为查询条件。
3楼未能解决问题
我现在用GridView2存放已经选定的查询条件(如姓名、工号等信息),然后用arraylist读取GridView2中的数据与新选择的数据进行拼接,再次放入GridView2。
目前的问题是不能完全取出GridView2中存放的数据,我做的是每10行为一页,现在只能取出第一页10行数据,第二页的数据取不到。
gwlist.Add(usr);
在增加usr之前,检测usr是否存在于gwlist中
如,用户要查询某些员工的信息,比如按姓名查询李姓6名员工张姓5名员工王姓7名员工,用户输入李然后搜索,系统返回所有李姓员工,用户选择6名员工后信息添加到GridView2中……如此反复,将18名员工的信息添加到GridView2,然后执行查询操作,从GridView2中读取信息作为查询条件。
3楼未能解决问题
我现在用GridView2存放已经选定的查询条件(如姓名、工号等信息),然后用arraylist读取GridView2中的数据与新选择的数据进行拼接,再次放入GridView2。
目前的问题是不能完全取出GridView2中存放的数据,我做的是每10行为一页,现在只能取出第一页10行数据,第二页的数据取不到。