プロパティを持つGridViewがあります:
OnRowUpdating="GridViewRowUpdateEventHandler"
GridView 内には、次のコントロールがあります。
<asp:TemplateField HeaderText="Progress" SortExpression="progress">
<ItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
<asp:ListItem Value="0">Incomplete</asp:ListItem>
<asp:ListItem Value="1">Complete</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
は次のGridViewRowUpdateEventHandler
ようになります。
protected void GridViewRowUpdateEventHandler(object sender, GridViewUpdateEventArgs e)
{
SqlConnection connection;
SqlCommand command;
GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
DropDownList ddlPriority = (DropDownList)row.FindControl("DropDownList1");
using (connection = new SqlConnection(ConfigurationManager.AppSettings["connString"]))
{
using (command = new SqlCommand(@"update table1 set priority = @priority where id = @id", connection))
{
command.Parameters.Add("@priority", SqlDbType.Int, 1).Value = ddlPriority.SelectedValue;
command.Parameters.Add("@id", SqlDbType.Int, 1).Value = row.RowIndex;
connection.Open();
command.ExecuteNonQuery();
connection.Close();
}
}
GridView1.DataBind();
}
エラー メッセージがまったく表示されず、データベース内の関連する行が更新されていません。理由を知っている人はいますか?
間違ったセルを見ているのCells[5]
でしょうか? それとも、page_load に何もないからでしょうか? それとも何か他のものですか?