我一直在碰撞这个问题一周,所以我想我最好打电话给专家:)。在回发中加载特定的动态用户控件
这个问题比实际的代码问题更美观,但我怀疑他们可能有关系。在我的程序中,我有一系列动态添加到网页的用户控件。这些用户控件可以包含几乎任何东西(在合理范围内),我正在使用的控件现在包含一个按钮和一个图表(通过Javascript生成),但可能会变得更加复杂。动态控件通过“Page_Init”事件添加,并且所有渲染均呈现100%正确。我在这方面没有问题。
当我在其中一个控件中进行回发时,会发生此问题。发生回发时,“Page_Init”事件会在回发中执行代码之前重新生成所有动态控件。根据页面生命周期模型,一切正常。但是,由于回发仅发生在其中一个控件中,因此我希望如果只有控制重新呈现。因为现在所有三个控件都会重新渲染,这会让用户感到分心。
有没有办法可能拦截按钮生成的回发,并通过AJAX在服务器处理? Telerik的“RadAjaxManager”做了类似这样的事情,但遗憾的是这个组件并不适合我,我也不需要任何复杂的东西。我知道一个建议是使用AJAX和Webservices编写控件,但是在我的场景中这太难了,因为动态控件可以包含它们自己的静态控件。
因此,在短期:
- >有相当复杂的服务器端代码三个功能动态控制。正确运行功能。无法转换为纯Javascript/Web服务代码。
- >当其中一个控件执行回发时,所有三个重新呈现。让用户分心,尤其是涉及到弹出窗口时。
- >需要一种方法来只重新渲染正在更新的控件。
谢谢!
使用UpdatePanel – Khazratbek
https://msdn.microsoft.com/en-us/library/bb399001.aspx – Khazratbek
感谢您的回复。我确实有很多更新面板,但他们没有解决问题。看起来好像我的一个Javascript延迟太长了。不完全解决问题,但有帮助。我最初的想法是像Dojo加载器那样,网页的一部分可以在没有其他人刷新的情况下更新,但似乎手动编写这样的代码非常困难。 – GertV