我有一个ASP.NET gridview组件,它正在填充数据库中的数据。我还在gridview中添加了一个包含DropDownList组件的模板字段。我还创建了一个单独的按钮(不是gridview字段)。单击此按钮时,程序将遍历所有GridView行并检查每行的DropDownList,并且当找到具有选定值0以外的DropDownList时,它会将该特定行的详细信息放入要发送到的会话中另一页。代码如下:
protected void CheckoutButton_Click(object sender, EventArgs e)
{
int n = 0;
foreach (GridViewRow row in GridView1.Rows)
{
if (((DropDownList)row.FindControl("DropDownList1")).SelectedItem.Value == "0")
{
}
else
{
n++;
Session["ProductList" + n] = row.Cells[0].Text;
Session["QuantityList" + n] = row.Cells[5].Text;
Session["NumberofResults" + n] = n;
}
}
}
我遇到的问题是,当单击“Checkout”按钮时,从DropDownList读取的值不是用户选择的值,而是其默认值。基本上,在执行CheckoutButton_Click方法中的代码之前,下拉列表的值将更改回默认值。
有什么想法吗?
答案 0 :(得分:0)
您需要使用Page_Load
将代码包装在if(!IsPostBack)
事件中,以确保保留所选的值。