0

我的 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 方法。同样,没有错误被抛出,它只是不做任何事情......

4

2 回答 2

0

也许正在发生一些不好的事情,比如编辑失败。而且由于您隐藏了错误:

catch (Exception ex) {
    }

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

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

于 2013-03-10T18:09:53.387 回答
0

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

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

在这一步之后,我确信它会退出编辑模式。

于 2017-07-27T20:33:53.930 回答