从GridView读取DropDownList的值的问题

时间:2011-12-21 13:25:18

标签: asp.net gridview drop-down-menu

我有一个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方法中的代码之前,下拉列表的值将更改回默认值。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要使用Page_Load将代码包装在if(!IsPostBack)事件中,以确保保留所选的值。