我会保持这个短possble但其击毁我的头。我有一个带有标签和字段的用户控件。我在运行时动态地将用户控件添加到页面。可能有许多用户控件是从数据库中获得的数据动态构建的。这些数据描述了标签名称以及是否应完成文本框。即它是必需的。我有一个提交的主页上有一个验证组。所有用户控件上的验证器都有相同的验证组。到目前为止,我希望这么好。天冬氨酸:RequiredFieldValidator的原因服务器上验证,即使禁用验证程序
用户控件为文本框一个RequiredFieldValidator,看起来都像这样。验证器默认启用。
<asp:TextBox ID="dfControl" runat="server" Text="" ToolTip="ucsAlphanumericEntryDC" Width="95%" CausesValidation="true"/>
<asp:RequiredFieldValidator ID="rfvContol" runat="server" ErrorMessage="Value is required" EnableClientScript="true"
ValidationGroup="ValidateContols" ControlToValidate="dfControl" Display="Dynamic" Enabled="true"></asp:RequiredFieldValidator>
当我动态加载控件时,我检查一个参数来告诉我该字段是否需要。参数来自代表我将要绘制的控制的数据库。如果字段不是必填字段,则禁用page_preRender中的验证...也在加载中尝试它。
if (!DisplayRequired)
{
rfvContol.EnableClientScript = false;
rfvContol.Enabled = false;
dfControl.CausesValidation = false;
}
到目前为止好。这一切仅适用于客户端验证,只有将“需要显示”设置为true的用户控件保持启用验证程序。
但是从一个提交按钮,我已经连接到同一个验证组的用户控件投稿页面上,我检查了提交,如果它的假我不保存任何东西的IsValid。但是,当页面重新呈现在客户端..我有所有用户控件的错误消息,说他们是必需的...即使我禁用了一些不需要的地方。视图状态是我假设的控件上的默认值。
我也试过不重绘控件与验证,通过在封闭代码,如果(!的IsPostBack)
有任何人任何想法就是为什么验证火的时候,他们都在第一页加载禁止,但没有得到在回发中禁用。
感谢米克
在什么时候上面的代码禁用验证程序被调用?它也被称为回发也? – patmortech 2011-03-28 12:18:59
嗨,帕特,我让他们在页面加载设置,但我想我可能已经打了一些东西。如果将Validator设置为enabled = false作为标记中的默认值,并且我认为它可能没有得到渲染,只是在回发中。我不知道我的,已经做了,但它似乎是now..lol工作......通常开发商...当它的固定和不知道如何:-) – Doiremik 2011-03-28 14:36:58