アホイ!
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="Update" で 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 が何をしているか (または何をしていないか) を確認する方法はありますか?
前もって感謝します!