c# - 下拉值总是选择第一个值
问题描述
下面是我的行更新事件代码。我的问题是当我选择下拉并将其保存到数据库时,它总是只选择第一个选择。
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int devopsid = Convert.ToInt16(GridView1.DataKeys[e.RowIndex].Values["devopsid"].ToString());
foreach (GridViewRow row in GridView1.Rows)
{
if (row.RowType == DataControlRowType.DataRow)
{
for (int i = 5; i < row.Cells.Count; i++)
{
DropDownList ddl = new DropDownList();
ddl.ID = "ddl " + row.Cells[0].Text;
// ddl.SelectedIndex = 0;
// ddl.Items.Add("Yes");
//ddl.Items.Add("No");
// ddl.SelectedIndex = 0;
ListItem item1 = new ListItem("Yes", "1");
ListItem item2 = new ListItem("No", "0");
List<string> values = new List<string>() { "Yes", "No" };
ddl.DataSource = values;
ddl.DataBind();
row.Cells[i].Controls.Add(ddl);
string ddlselected = ddl.SelectedValue;
if (GridView1.HeaderRow.Cells[i].Text == DropDownList1.SelectedItem.Text.Trim())
{
string query = " update devopstable set " + GridView1.HeaderRow.Cells[i].Text + " = '" + ddlselected + "' where devopsid=@devopsid ";
SqlCommand cmd = new SqlCommand(query, cnn1);
cnn1.Open();
cmd.Parameters.AddWithValue("@devopsid", devopsid);
cmd.ExecuteNonQuery();
cnn1.Close();
}
}
}
}
GridView1.EditIndex = -1;
FillGrid();
}
解决方案
尝试在 page_load 的 IsPostback 中编写保存方法
例子:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
// wrap your save method in function and call here
}
}
推荐阅读
- r - 带有长表达式的 R 正则表达式
- google-chrome - 有没有办法将伪元素“之前”/“之后”直接添加到 Chrome 的开发工具样式选项卡?
- node.js - Nestjs招摇问题
- sql - Hibernate 无法从终端执行可以正常执行的查询
- java - 为 kafka connect s3 sink 连接器定义自定义格式
- mysql - MYSQL SELECT 时间戳为 1 到 2 周的所有行
- mallet - Mallet:“VM 初始化期间发生错误。无法为 3145728KB 对象堆预留足够的空间?
- php - WooCommerce:显示产品变体/变量描述
- javascript - 在 Promise.All 中释放 MySQL 连接
- api - 在 AWS 实例上查询 Elasticsearch