我有一个带有ASP.NET AJAX 1.0 UpdatePanel的Repeater。 UpdatePanel外部有按钮,但仍在转发器中。当UpdatePanel中的某个部分出现时(它是一个隐藏的Panel控件,当用户以某种方式回答问题时出现),底部的按钮消失。
这是一个例子。
[REPEATER]
[UPDATEPANEL]
[QUESTION] <-- when user says yes, Panel appears
[PANEL]
[/UPDATEPANEL]
[TABLE] <-- This table is no longer visible.
[Button]
[/TABLE]
[/REPEATER]
如果我将表格移到页面顶部,内容不会消失,所以我怀疑这是一个样式问题,控件实际上在那里,但是在UpdatePanel的内容下面。我尝试添加&lt; br clear =“all”/&gt;就在桌子前面,无济于事。
知道如何解决这个问题吗?
编辑:我有一个错误的关闭标记,导致UpdatePanel进一步扩展,因此它隐藏了我的控件。使用Firefox插件有助于识别这一点。
答案 0 :(得分:2)
我的建议是使用Firefox和Web Developer工具栏在更新发生后执行View Generated Source或使用Firebug检查元素。如果表格html仍然在页面上,那么它可能是样式问题或面板中格式错误的HTML问题导致表格无法正确呈现。如果表html丢失,那么它将被AJAX回调从DOM中删除(或被覆盖)。您可以使用Firebug来调试实际的AJAX回调,以及查看实际被替换的内容和时间。
如果您仍然无法解决问题并想要更多输入,那么在问题更新前后发布生成的HTML也会有所帮助。
答案 1 :(得分:0)
将表放在updatepanel中,或将整个转发器放在一个更新面板中。
答案 2 :(得分:-1)
请注意,“清除”属性为Deprecated as of HTML 4.01,isn't included in XHTML Strict - 您使用的是哪种文档类型 - 如果您使用严格(并且您明确使用某种类型的XHTML,因为您'我们关闭了你的br),然后你的浏览器完全可以忽略clear属性。
你最好用CSS做这件事:
<style type="text/css">
.cleaner{
clear: both;
}
</style>
<br class="cleaner" />
此外,您可以尝试在面板之后放置br,以便它返回到UpdatePanel并强制浏览器兑现它。