コードに次の行があります。
cmd.Parameters.Add("@priority", SqlDbType.VarChar).Value = ((DropDownList)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).SelectedValue;
しかし、これを実行すると、次のエラーが発生します。
Unable to cast object of type 'System.Web.UI.LiteralControl' to type 'System.Web.UI.WebControls.DropDownList'.
なぜこれが起こるのか、何か考えはありますか?
GridViewの関連部分は次のようになります。
<asp:TemplateField HeaderText="Priority">
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<%# Bind("priority") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="DropDownList1" runat="server"
SelectedValue='<%# Bind("priority") %>'>
<asp:ListItem Value="0">Low</asp:ListItem>
<asp:ListItem Value="1">Normal</asp:ListItem>
<asp:ListItem Value="2">High</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>