我的Gridview拒绝退出编辑模式。当我点击更新链接时,尽可能地更新数据库,但是Gridview行仍处于编辑模式。当我按下取消按钮时,Gridview反映了新的信息。为什么即使在将EditIndex设置为-1之后该行仍处于编辑模式?Gridview保持编辑模式
我确定这是一种真正的补救措施,但是我不能找到任何帮助获得一个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方法。再一次,没有错误抛出,它只是没有做任何事情....
好的,我已经用aspx中设置的gridview/ods更新了原始文章。那么,我做错了什么,阻止了它在row_updating中的显式调用中更新呢? – user1744966 2013-03-10 18:24:01
尝试删除更新事件中的代码。如果您想重置索引,请在更新的事件中执行。 – 2013-03-10 18:39:19
没有区别。我真的不想重置索引,我只是这样做,因为它并不是独立于编辑模式。我不明白为什么我不得不明确地调用update()以开始... – user1744966 2013-03-10 18:58:27