2012-07-27 64 views
0

我喜欢根据标签的可见性在标签上添加验证,因为如果标签不可见,则提交按钮将引发验证消息或错误。基于标签可见性的验证

我习惯于工具箱中的验证控件,它不允许这个功能!

感谢

+0

我假设你的意思是一个asp:Button?另外,你有尝试过什么吗?如果我们有一些尝试的代码会很好。 – 2012-07-27 23:15:18

+0

am使用detailsview作为输入表单,在字段上,如果点击一个按钮(不是实际的提交按钮),则标签变为可见(其具有数据绑定值)。但我不能使用验证控件(是一个新手!)在标签可见性,因此我不知道如何去做.... wud真的很感谢你的输入 – user851971 2012-07-27 23:23:51

回答

0

它好像如果一个asp:Label的可见性设置为false,asp.net引擎甚至不会把它的DOM。所以你可以检查javascript,使用(html)按钮的onclick属性来检查标签是否在DOM中,并使用asp.net的__doPostBack() javascript函数发回服务器,如果它存在的话:

 <script type="text/javascript"> 
     function testMe() 
     { 
      var lbl = document.getElementById('lblTest'); 
      if(lbl == null) 
      document.getElementById('msg').innerHTML = "Error"; 
      else 
      __doPostBack('testButton'); 
     } 
     </script> 
     <asp:Label ID="lblTest" runat="server" Visible="false" Text="Hello"></asp:Label> 
     <button onclick="testMe();">test</button> 

要完全诚实的,我还以为lblundefined如果标签没有在DOM存在,但Firebug的显露它实际上是null。无论如何,需要注意的是,为了让asp.net定义__doPostBack()方法,我相信你需要在autopostback="true"的表单中进行一些控制,并且在代码隐藏中,您可以检查导致Page_Load中回发的原因方法如下:

if(Request.Form["__EVENTTARGET"] == "testButton") {} 
+0

谢谢它的工作.... @碎纸机! – user851971 2012-08-01 16:18:14