Ahoy!调试GridView/ObjectDataSource事件
我使用绑定到一个ObjectDataSource的ASP.NET GridView控件:
<asp:ObjectDataSource ID="Things" runat="server"
TypeName="BLL.Thing"
UpdateMethod="UpdateThing"
OnUpdating="Things_Updating"
OnUpdated="Things_Updated">
<UpdateParameters>
<asp:SessionParameter
Name="userContext"
SessionField="UserContext"
Type="Object" />
<asp:Parameter Name="thing" Type="Object" />
</UpdateParameters>
</asp:ObjectDataSource>
点击用的CommandName ImageButton控件=“更新”将导致发生指定OnUpdating事件,但不指定UpdateMethod或OnUpdated事件。
<EditItemTemplate>
<asp:ImageButton ID="ImageButton_Save" runat="server"
CommandName="Update"
SkinID="Save"
CausesValidation="false"
CommandArgument='<%# Eval("Id") %>' />
<asp:ImageButton ID="ImageButton_Cancel" runat="server"
CommandName="Cancel"
SkinID="Cancel"
CausesValidation="false" />
</EditItemTemplate>
参数在OnUpdating事件定义像这样的输入:
protected void Things_Updating(object sender, ObjectDataSourceMethodEventArgs e)
{
e.InputParameters["thing"] = _theThing;
}
否则抛出异常。该页面只会回复,EditItemTemplate控件仍然显示。我可以在所有地方放置断点,但是线索在Things_Updating结束时停止。看起来有些异常正在发生,调试器无法处理或捕获这些异常。有没有办法打开引擎盖,看看ASP.NET正在做什么(或没有做)?
在此先感谢!
不,小道神秘地在Things_Updating后结束: -/ – Adam 2011-12-19 21:04:56
@Adam:答复已更新。 – pseudocoder 2011-12-19 22:06:06
我不认为GridView类有一个OnUpdating事件,但它确实有一个我将用来代替的RowCommand事件。谢谢! – Adam 2011-12-20 20:06:04