所以我玩弄EXT.net(ASP.NET),我有以下情况:asp.net/ext.net:UserControl通知父母操作成功或失败?
ParentPage.aspx - 包含打开一个Ext.net“窗口”的按钮;一个使用Javascript完成的Popup。在那个窗口中,我放置一个UserControl(Customer.ascx)。这种用户控件可以创造顾客,它并因此使用Ext.NET DirectMethod在代码隐藏,Customer.ascx.cs
Customer.ascx - 包含一些Ext.net控件和代码来创建客户的用户控件目的。
现在,当我拨打DirectMetod CreateNewCustomer时,Customer按预期方式创建,但现在我希望ParentPage知道这个成功(或失败)的操作并采取相应的行动。
因此,如果操作失败 - 客户因某种原因无法创建 - 窗口(弹出窗口)应保持原位并显示错误。但是,如果操作成功,那么窗口应该关闭,并且应该更新/刷新列表。
我不能/应该在UserControl中放置任何“OnSuccess”代码,因为UserControl并不真正知道它是否放置在Window或其他地方,并且它不应该由UserControl来决定是否应该显示或者不。
所以我需要通知父页面发生了什么。我的脊柱反应是在用户控件中有一个事件,但这当然没有工作,因为它是一个异步操作,我不能将消息推送到Web浏览器。
也许你可以在UserControl调用的父页面中放置一个Javascript方法,但这有点丑陋。 UserControl应该能够以“安全的方式”通知父页面。它不知道Javascript方法是否存在,所以它可能会调用一个不存在的方法?
任何想法,想法等,将不胜感激=)
我已经看过ScriptManager,并想在我的DirectControl中的UserControl中使用“RegisterStartupScript”。该脚本应检查另一个名为“CustomerReportCallback”的Javascript方法,如果存在,请调用该方法。这样我可以检查Parent是否有一个Javascript方法,可以在操作成功后用于“回调”。但没有成功 - 看起来“RegisterStartupScript”只能在Page_Load中? – Ted 2011-03-29 14:40:40