我遇到了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。
答案 0 :(得分:0)
我需要确保我的gridview没有绑定两次:
if (!IsPostBack)
{
PopulateGridview();
}