【问题标题】:Postback parent page when using an ASP.NET ModalPopup control使用 ASP.NET ModalPopup 控件时的回发父页面
【发布时间】:2010-12-15 18:44:03
【问题描述】:
我有一个自定义的用户控件,它显示一个模式弹出窗口(来自 Ajax 工具包)。该控件允许用户将注释添加到父页面显示在 GridView 中的客户记录。
在用户单击模式弹出窗口上的“添加注释”按钮并将其关闭后,我无法强制父页面重新加载网格。注释已正确添加到数据库中,但我必须手动刷新页面才能显示它,而不是在保存+关闭弹出窗口时自动刷新。
【问题讨论】:
标签:
ajaxcontroltoolkit
modalpopupextender
webforms
【解决方案1】:
注释添加到数据库后,您可以使用委托在父页面中触发事件。
// Declared in Custom Control.
// CustomerCreatedEventArgs is custom event args.
public delegate void EventHandler(object sender, CustomerCreatedEventArgs e);
public event EventHandler CustomerCreated;
添加注释后,触发父页面事件。
// Raises an event to the parent page and passing recently created object.
if (CustomerCreated != null)
{
CustomerCreatedEventArgs args = new CustomerCreatedEventArgs(objCustomerMaster.CustomerCode, objCustomerMaster.CustomerAddress1, objCustomerMaster.CustomerAddress2);
CustomerCreated(this, args);
}
在父页面中,实现所需的事件以重新填充 grdiview。
protected void CustomerCreated(object sender, CustomerCreatedEventArgs e)
{
try
{
BindGridView();
}
catch (Exception ex)
{
throw ex;
}
}
在您的情况下,您不能使用任何自定义事件参数,而是使用 EventArgs 类本身。