如何在保存时从gridview行获取更新的下拉列表值?

时间:2014-03-04 14:06:33

标签: c# asp.net gridview webforms

我遇到了gridview内部的下拉列表问题。

gridview是对rowcreated命令的更新,带有下拉列表和一组值(工作正常)。下拉列表中的选定值可由用户更改,然后保存。

当我点击保存时,我需要从下拉列表中获取每个新选择的值,如果尚未添加,则将其存储在int列表中。

这一切都运行正常,但是我无法获得用户选择的更新值,只有在设置时已经填充的所选项目。

protected void btnSave_Click(object sender, EventArgs e)
{
    List<int> list = new List<int>();
    foreach (GridViewRow r in gvOrder.Rows)
    {
        if (r.RowType == DataControlRowType.DataRow)
        {
            DropDownList ddl = r.FindControl("ddlNewO") as DropDownList;
            int value = Convert.ToInt16(ddl.SelectedItem.Text);
            bool Contains = list.Contains(value);
            if (!Contains)
            {
                list.Add(value);
            }
            else
            {
                lblMessage.Text = "This value is already assigned!";
            }
        }
    }
}

示例:如果有9行,则每个下拉列表都有数字1-9,所选的数字是行索引。如果我在页面加载后进入并选择前三个作为“1”并单击“保存”,它将贯穿并仍然从加载时的值中选出值,例如1,2,3。

1 个答案:

答案 0 :(得分:0)

我需要确保我的gridview没有绑定两次:

        if (!IsPostBack)
        {
            PopulateGridview();
        }
相关问题