【发布时间】:2011-09-28 20:02:05
【问题描述】:
我正在用 Visual Studio 编写一个网站,类似于一个在线库。我在第一页上有一个 GridView,它显示了数据源中可用的所有书籍以及数据源中还包含的一些其他属性。 GridView 包含复选框,用户可以通过选中一个框来选择他想要订购的书籍。我的问题是如何使用所选行中的数据、书籍列表及其属性并将该列表显示在另一个页面上,以便用户能够知道他选择了哪些项目?
我尝试在 FirstPage 上使用 for 循环:
protected void Page_Load(object sender, EventArgs e)
{
List<int> ids = new List<int>();
if (!IsPostBack)
{
}
else
{
for (int i = 0; i < GridView1.Rows.Count; i++)
{
int bookID = (int)GridView1.DataKeys[i][0];
CheckBox cb = (CheckBox)GridView1.Rows[i].FindControl("CheckBox");
if (cb.Checked)
{
ids.Add(bookID);
}
}
Session["Ids"] = ids;
Response.Redirect("SecondPage.aspx");
}
}
在第二页上:
protected void Page_Load(object sender, EventArgs e)
{
DataTable dtBooks = new DataTable("Books");
dtBooks.Columns.Add(new DataColumn("ID", typeof(int)));
if (!IsPostBack)
{
var list = (List<int>)Session["Ids"];
foreach (int id in list)
{
if (Request.QueryString["bookID" + id] != null)
{
DataRow row;
row = dtBooks.NewRow();
row["ID"] = Request.QueryString["bookID" + id];
dtBooks.Rows.Add(row);
}
}
GridView1.DataSource = dtBooks;
GridView1.DataBind();
}
else
{
}
}
但我在第二页上没有 GridView 表。如果有人注意到我的错误并指出,我将不胜感激。希望你能帮助我。
【问题讨论】:
标签: c# .net asp.net visual-studio visual-studio-2010