成功将数据列表注册为异步回发触发器

时间:2009-04-29 08:12:09

标签: asp.net-ajax

我正在编写一个小型的noticeboard应用程序,其中大部分内容似乎都工作到目前为止。但是我试图在通知查看页面中添加一个Ajax面板,但无法使其工作。

该网站使用定义了三个内容区域的母版页,在此页面的情况下用于通知过滤器,通知标题列表(在Page.Load事件中填充的数据列表),以及当前显示通知。当您点击标题时,它应该加载通知。

问题是我希望当前显示的通知位于Ajax面板上,但触发器位于不同的内容区域。我已经在主页面上的内容占位符之外放置了一个脚本管理器,并且在aspx页面上,我在通知视图区域内的内容周围放置了一个更新面板,其中包含以下触发器:

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="dlSelector" EventName="ItemCommand" />
</Triggers>

在Page.Load活动中,我有:

'Get the script manager first, and register the selector as a postback
Dim sm1 As ScriptManager = ScriptManager.GetCurrent(Page)
sm1.RegisterAsyncPostBackControl(dlSelector)

这个编译并且代码部分似乎运行正常,但是我在UpdatePanel'UpdatePanel1'中找不到触发器的错误'带有ID的控件'dlSelector'。如果我更换

sm1.RegisterAsyncPostBackControl(dlSelector)

sm1.RegisterAsyncPostBackControl(Page.FindControl("dlSelector"))

然后我得到一个错误,FindControl已返回null并再次失败。我做错了什么?

1 个答案:

答案 0 :(得分:1)

主页面意味着您的控件名称将被损坏 (例如ct100_someotherstuff_nameOfControl),这就是FindControl空手而归的原因。您需要使用控件的正确ID来注册回发控制。

Rick Strahl中引用的this post中读取此内容。

希望它有所帮助。