Validator原来不可以Render两次

    公司有一个简单功能的PrintPanel,这两天却一直用不上,报以下的错误:
  
  
[ArgumentException: 已存在具有相同键的条目。]
   System.Collections.Specialized.ListDictionary.Add(Object key, Object value) 
+283
   System.Web.UI.ClientScriptManager.RegisterExpandoAttribute(String controlId, String attributeName, String attributeValue, Boolean encode) 
+237
   System.Web.UI.WebControls.BaseValidator.AddExpandoAttribute(Page page, HtmlTextWriter writer, String controlId, String attributeName, String attributeValue, Boolean encode) 
+105
   System.Web.UI.WebControls.BaseValidator.AddAttributesToRender(HtmlTextWriter writer) 
+188
   System.Web.UI.WebControls.RequiredFieldValidator.AddAttributesToRender(HtmlTextWriter writer) 
+21
   System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer) 
+17
   System.Web.UI.WebControls.BaseValidator.Render(HtmlTextWriter writer) 
+459
   System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer, ControlAdapter adapter) 
+53
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter adapter) 
+294
   System.Web.UI.Control.RenderControl(HtmlTextWriter writer) 
+24
   System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer, ICollection children) 
+199
   System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) 
+21
   System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer) 
+7
   System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) 
+29

   实在是看不懂,而.NET又不像Java一样是开源的,可以一直跟进去看代码。网上又查不到错误。只好还是回到唯一的线索:StackTrace。发现是从BaseValidator.AddExpandoAttribute这个私有方法抛上来的,于是把Validator都去掉了,发现没问题了。研究了一会儿过后,发现应该是ClientScriptManager里把相同的Javascript给注册了两次造成的。把Validator设成Disable没用,只有Visible=false管用。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值