试过这个:
<asp:RequiredFieldValidator
ID="rqrNome"
runat="server"
Display="Dynamic"
ControlToValidate="txtNome"
ErrorMessage="<%= myVar %>">
*
</asp:RequiredFieldValidator>
但似乎这是不可能的。我会去掉.ascx.cs并用于每个验证器
rqrNome.ErrorMessage = myVar;
有时要检查的变量太多。我想直接放在.ascx上。
有可能吗?
我想我无法从RequiredFieldValidator
中删除runat="server"
标记
答案 0 :(得分:1)
请改为尝试:
<asp:RequiredFieldValidator
ID="rqrNome"
runat="server"
Display="Dynamic"
ControlToValidate="txtNome">
<%= myVar %> *
</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);