如何直接从RequiredFieldValidator设置变量的自定义错误消息?

时间:2011-07-29 10:02:13

标签: c# .net

试过这个:

<asp:RequiredFieldValidator 
     ID="rqrNome" 
     runat="server" 
     Display="Dynamic" 
     ControlToValidate="txtNome" 
     ErrorMessage="<%= myVar %>">
              &nbsp;*
</asp:RequiredFieldValidator>   

但似乎这是不可能的。我会去掉.ascx.cs并用于每个验证器

rqrNome.ErrorMessage = myVar;

有时要检查的变量太多。我想直接放在.ascx上。

有可能吗?

我想我无法从RequiredFieldValidator

中删除runat="server"标记

1 个答案:

答案 0 :(得分:1)

请改为尝试:

<asp:RequiredFieldValidator 
     ID="rqrNome" 
     runat="server" 
     Display="Dynamic" 
     ControlToValidate="txtNome">
<%= myVar %>&nbsp;*
</asp:RequiredFieldValidator>   

更新

好的,如何使用上面的方法通过'myVar'设置文本。然后包含以下linq查询以迭代页面上的所有requiredfieldvalidtors;

var requiredFieldValidators = 
from validators in this.Page.Controls.Cast<Control>()
where validator is RequiredFieldValidator
select (RequiredFieldValidator)validator;

然后迭代所有验证器,将其ErrorMessage设置为等于已正确设置的text属性。

requiredFieldValidators.ToList().ForEach(c => c.ErrorMessage = c.Text);