In ASP.NET, I have a FormView bound to an ObjectDataSource. FormView has an ItemTemplate with a Delete button and a label. I am handling the OnItemDeleted FormView event to determine if my business class throws an exception on deletion. If an exception is detected, I change the label text to everything that is in the exception message.
Well, it just doesn't work.
I detect an Exception penalty, but the label text never changes. When the page reloads, the default text remains. I also tried rebuilding FormView using DataBind () after assigning new text, but it also does not work.
In a desperate attempt to track down the problem, I took the shortcut out of FormView and it works great.
What am I doing wrong?
ASPX Page:
<asp:ObjectDataSource ID="MyObjectDataSource"
TypeName="MyScopeRepository"
SelectMethod="GetById"
DeleteMethod="Delete"
runat="server">
<SelectParameters>
<%-- The id param here is from a DropDownList, not included in the example for clarity. --%>
<asp:ControlParameter Name="id" Type="Int32" ControlID="MyDropDownList" PropertyName="SelectedValue" />
</SelectParameters>
<DeleteParameters>
<asp:Parameter Name="id" Type="Int32" />
</DeleteParameters>
</asp:ObjectDataSource>
<asp:FormView ID="MyFormView" DataSourceID="MyObjectDataSource"
RenderOuterTable="false"
DataKeyNames="Id"
OnItemDeleted="MyFormViewItemDeleted"
runat="server">
<ItemTemplate>
<asp:Button CssClass="Button Small" Text="Delete" CommandName="Delete" runat="server" /><br />
<asp:Label ID="ErrorLabel" Text="Default text" runat="server" />
</ItemTemplate>
</asp:FormView>
Code for:
protected void MyFormViewItemDeleted(object sender, FormViewDeletedEventArgs e)
{
if (e.Exception != null && e.Exception.InnerException is RepositoryException)
{
Label errorLabel = (Label)MyFormView.FindControl("ErrorLabel");
errorLabel.Text = e.Exception.InnerException.Message;
e.ExceptionHandled = true;
}
}
!
EDIT: , FormView "", :
- OnInit
- OnItemCreated
- OnLoad
- OnItemCommand
- OnItemDeleting
- OnItemDeleted
- OnItemCreated
- OnDataBound
- OnPreRender
- OnUnload
, , OnItemCreated , OnItemDeleted, , , , , . , ?