2010-07-05 50 views
1

这是很难解释,并给出了基于它的代码。所以,谢谢你,现在,如果你甚至试图帮助失去大部分的页面内容上第二回传

我有一个更新面板的形式。这张贴表单并验证它。返回任何无效字段的错误消息字符串,例如“字段xyz是必填字段,字段abc必须是数量”

当我输入错误的日期时,它会回传到正确的位置,并将文本显示在底部的div中该更新面板的目的是在页面更新。 (只有它应该改变)

这个工程,但第二次我打(说我输入无效的数据两次)完整的形式将消失离开我只是网站的旗帜和错误信息是回。

我用尽注释掉的代码后的整个背部,使得按钮实际上并没有做任何事情,但它仍然有同样的问题(当然这一次不会必须创建一个错误消息)

所以我只能认为这是值得做的的UpdatePanel本身以及它是如何工作的,但我已经在这个一直盯着的年龄,并没有更多的想法!

回答

0

我发现这个问题(约5小时后),但不明白。这是disppearing曾在UpdatePanel UpdatePanel的我用它

</ContentTemplate> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="btnTabs" /> 
    </Triggers> 
</asp:UpdatePanel> 
<asp:PlaceHolder runat="server" ID="phldActionButtons" /> 

占位符里面有我是用我的更新面板的控制之外。 您可以看到的关闭更新面板是

的内容通过简单地移动contenttemplate内的占位符,它似乎解决了问题。 (不知道为什么它会隐藏/删除整个更新面板,只有它是它在回发验证的形式!

1

很难回答这个问题没有一些示例代码。看看你的代码隐藏在做您的页面,要知道,你的更新面板内,你的回发实际上是一个AJAX回调。你的页面被再次执行,但只有更新面板的内容被重新渲染,并且只有相同的内容应该在客户端更新。

通常,当我在第二次或后续回发时遇到问题时,会在初始化代码运行时执行,当我不想要它时。

我的建议是看看你正在检查的地方if (Page.IsPostback)if (Page.IsCallback)并玩弄这些。也许你需要保护,处理以下块内的表格服务器端代码:

if (Page.IsCallback) 
{ 

} 
0

我刚刚遇到类似的问题。约5小时后,我决定试试这个:

UpdateMode="Conditional" 

我的UpdatePanel和它停止导致第二回传!

相关问题