我需要改变Text@R_301_460@的颜色,当它的必需字段验证器被触发单击提交按钮
解决方法
您可以做的是注册一个JavaScript函数,它将在提交后遍历全局Page_Validators数组,您可以适当地设置背景。关于这一点的好处是,您可以在页面上的所有控件上使用它。该函数如下所示:
function fnOnUpdateValidators() { for (var i = 0; i < Page_Validators.length; i++) { var val = Page_Validators[i]; var ctrl = document.getElementById(val.controltovalidate); if (ctrl != null && ctrl.style != null) { if (!val.isvalid) ctrl.style.background = '#FFAAAA'; else ctrl.style.backgroundColor = ''; } } }
最后一步是使用OnSubmit事件注册脚本:
VB.NET:
Page.ClientScript.RegisterOnSubmitStatement(Me.GetType,"val","fnOnUpdateValidators();")
C#:
Page.ClientScript.RegisterOnSubmitStatement(this.GetType(),"fnOnUpdateValidators();");
您将在所有代码中保持正确的IsValid状态,并且可以与所有控件一起使用。
注意:我从following blog发现了这个解决方案。我只想在源博客下载的时候将其记录在这里。