RowUpdatingイベントを使用してグリッドビュー(.net 3.5)の列の値を変更しようとしています。 イベントが発生し、新しい値を設定しましたが、テーブルは更新されません。GridView RowUpdatingは列の値を変更できません
<asp:GridView ID="GridViewHotels" runat="server" AllowSorting="True"
AutoGenerateColumns="False" DataSourceID="SqlDataSourceHotels"
OnRowUpdating="GridViewHotels_RowUpdating">
...
<asp:BoundField DataField="lat" HeaderText="lat" SortExpression="lat" />
...
<asp:SqlDataSource ID="SqlDataSourceHotels" runat="server"
UpdateCommand="UPDATE [hotels] SET ... [lat] = @lat .... WHERE [id] = @id">
これは、イベントコード(と呼ばれている)である。
protected void GridViewHotels_RowUpdating(Object sender,
GridViewUpdateEventArgs e)
{
e.NewValues["lat"] = "xxx";
}
そして、まだ、 " 「ラテラル」フィールドは更新されません
データベースにバインドされています。 GridViewHotels.DataBind()を呼び出します。値を設定した後、それは? – Ranch
データベースにバインドされている場合は、バインドするデータを正しい方法で取得するメソッドが必要ですか?基本的には、最初にグリッドに入力するのと同じ呼び出しを実行する必要があります。また、新しい値を保存するときにも、その変更をデータベースに保存する必要があります。フィールド値を設定するだけでは機能しません。 – kd7
更新は、SqlDataSourceで設定されたUpdateCommandコマンドで自動的に行われます。 この更新コマンドを自分のコードに設定する必要がありますか? (SqlDataSourceHotels.UpdateCommand = "UPDATE ..."のようなもの) – Ranch