Gridview仍处于编辑模式

时间:2013-03-10 17:54:56

标签: c# asp.net

我的Gridview拒绝退出编辑模式。当我点击更新链接时,就更新数据库而言,一切正常,但Gridview行仍处于编辑模式。当我按下取消按钮时,Gridview会反映新信息。即使将EditIndex设置为-1,为什么该行仍处于编辑模式?

我确定这是非常有用的东西,但我找不到任何帮助,让gridview退出编辑模式,而不只是告诉我设置编辑索引。

protected void Gridview_RowUpdating(object sender, GridViewUpdateEventArgs e) {
    // Update code is here and works fine
    try {
        // this works and updates the database w/ no problems
        ObjectDataSource.Update();
    }
    catch (Exception ex) {
    }

    Gridview.EditIndex = -1;
    Gridview.DataBind();            
}
编辑:我拿出了try / catch,似乎没有任何失败,但我仍然需要显式调用ObjectDataSource.Update()所以,这里是我的GridView的设置:

<asp:Gridview ID="Gridview" runat="server" DataSourceID="ObjectDataSource" DataKeyNames="ID" OnDataBound="Gridiew_DataBound"
                AutoGenerateColumns="false" OnRowCommand="Gridview_RowCommand" OnRowUpdating="Gridview_RowUpdating">

和ObjectDataSource

<asp:ObjectDataSource ID="ObjectDataSource" runat="server" TypeName="DAL.Class" SelectMethod="SelectMethod" UpdateMethod="UpdateMethod">
    <UpdateParameters>
        <asp:Parameter Name="param1" Type="Int32" />
        <asp:Parameter Name="param2" Type="String" />
        <asp:Parameter Name="param3" Type="String" />
        <asp:Parameter Name="param4" Type="String" />
        <asp:Parameter Name="param5" Type="String" />
        <asp:Parameter Name="param6" Type="Int32" />
        <asp:Parameter Name="param7" Type="String" />
        <asp:Parameter Name="param8" Type="Int32" />
    </UpdateParameters>
</asp:ObjectDataSource>

那么,设置错误,它不会自动更新?

编辑2: 所以,我现在在ObjectDataSource_Updating事件中设置参数值(之前没有调用它,这就是为什么我将显式调用到ods_update())。现在_Updating事件正在被击中,但它永远不会进入我的DAL方法。同样,不会抛出任何错误,它只是没有做任何事情......

2 个答案:

答案 0 :(得分:0)

也许正在发生的事情就像编辑失败一样。 因为你隐藏了错误:

catch (Exception ex) {
    }

......你看不出发生了什么。

如果GridView / DataSource设置正确,则无需显式调用Update或DataBind。

答案 1 :(得分:0)

你可以通过更新虚拟表来试一试吗? (在Gridview_RowUpdating事件中)

 ObjectDataSource.UpdateCommand = @"UPDATE somedummytable set  parameter";   
ObjectDataSource.Update();     
Gridview.EditIndex = -1;       
    ObjectDataSource.DataBind();     
Gridview.DataBind();    

完成此步骤后,我确信它将退出编辑模式。