【发布时间】:2009-02-24 09:59:59
【问题描述】:
我有一个名为 TenantList.ascx 的用户控件,其中包含来自 DevExpress (Web.ASPxGridView) 的稍微修改的 GridView。这个控件在不引起回发的情况下进行回调,这正是我所需要的。 我需要响应的特定事件是 CustomButtonClicked。我在用户控件 TenantList.ascx 上创建了 onCustomButtonClicked 事件,该事件在 GridView CustomButtonClicked 事件触发时触发。
我在使用 UC 的页面上有一个事件处理程序。当我使用 VS 进行调试时,我可以看到我进入了我想的事件处理程序。 我的事件处理程序如下所示:
protected void uc_TenantList_CustomButtonCallback(object sender, ASPxGridViewCustomButtonCallbackEventArgs e)
{
Tenant tenant = (Tenant)uc_TenantList.GetGridView().GetRow(e.VisibleIndex);
switch (e.ButtonID)
{
case "btn_show":
ShowRow(tenant);
break;
case "btn_edit":
EditRow(tenant);
break;
case "btn_delete":
DeleteRow(tenant.Id);
break;
default:
break;
}
}
private void EditRow(Tenant tenant)
{
uc_TenantDetails.SetTenantData(cBLL.GetTenant(tenant.Id));
UpdatePanel1.Update();
}
EditRow 函数被调用,并且 UserControl TenantDetails.ascx 被正确填充数据。然而 UpdatePanel1.Update();没有更新我的 TenantDetails UserControl 所在的面板。
但是,如果我调用 UpdatePanel1.Update();从注册到 ScriptManager 的普通控件,它更新得很好。
protected void Button1_Click(object sender, EventArgs e)
{
uc_TenantDetails.SetTenantData(cBLL.GetTenant(17));
UpdatePanel1.Update();
}
这没有问题...我 100% 被卡住了,不知道这里可能存在什么问题。
欢迎提出建议!!
干杯 真正的 Napster - 真正的麻烦:)
【问题讨论】:
-
您的更新面板是在带有控件的页面上还是实际上在使用脚本管理器代理等的控件上...
-
它与用户控件在同一页面上。但是 ScriptManager 位于此页面上使用的 Masterpage 上。
标签: asp.net ajax user-controls