GridView RowUpdating无法更改列值

时间:2011-01-04 16:15:01

标签: c# .net gridview

我正在尝试使用RowUpdating事件更改gridview(.net 3.5)上的列值。 事件被触发,我设置了一个新值 - 但表没有更新。

<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";
    }

然而,“lat”字段未更新

2 个答案:

答案 0 :(得分:0)

您的网格数据源绑定到了什么?如果它是您保存在ViewState等中的数据集,则必须调用AcceptChanges并重新绑定数据。如果基础数据在数据库中,只需从数据源重新绑定网格(在更新之后),即从sql server /任何数据源刷新它。

答案 1 :(得分:0)

我相信你需要一个SQLDataSource中的连接字符串。