我的表单中有两个UpdatePanels
,其中包含多个DropDownLists
和TextBoxes
,其中大部分都需要进行验证。我有一个验证摘要和验证器组合在一个单独的div
中。 div
不在任何一个更新面板中。我终于有了一个不在任何UpdatePanels
的按钮。如何通过单击按钮确保我的所有控件都经过验证并显示在验证摘要中?
答案 0 :(得分:1)
首先,您的按钮必须设置为AsyncPostBackTrigger
的{{1}}
其次,您必须将UpdatePanels
设置为所有验证器,这将在客户端执行验证(java脚本)。
最后,您的按钮EnableClientScript="true"
必须与您的验证者匹配。
但是,如果您需要在服务器端执行某些验证,则必须将验证程序置于更新面板中以异步方式更新它们。
答案 1 :(得分:0)
相信我,我没有做任何这些建议就实现了这一点。我只是将我的按钮的验证组和所有验证器设置为相同的值。就是这样。让我提醒你的情况:我有两个updatepanels.第一个面板上控件的定位器是一个单独的div,它不包含在任何一个面板中。第二个更新面板只有一个控件要验证,所以我把它的验证器放到同一个面板上。而且我有一个与所有这些完全分开的按钮。当我点击buton时,我可以获得validationsummary中汇总的所有验证消息。然而,一个非常奇怪的事情仍然是一个秘密:正如我所说的第一个面板控件的验证器在该面板之外并且它们工作得非常好。但是,如果我从第二个更新面板中取出唯一的验证器并将其放在其他验证器中,我就不会得到那个验证器的消息。我几乎可以肯定这是Visual Studio中的一个错误,因为我目睹了很多这样的事情。