我的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方法。同样,不会抛出任何错误,它只是没有做任何事情......
答案 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();
完成此步骤后,我确信它将退出编辑模式。