Ich habe eine Seite, wo ich jede Validierung Nachricht protokollieren möchte, die der Benutzer die Anforderungen des zugehörigen Felds nicht erfüllen konnte.Finden Sie fehlgeschlagen Validatoren asp.net
Das Problem ist, dass mein postback/button click nie auftritt (vielleicht wegen der clientseitigen Validierung), und daher die Protokollierung nie stattfindet, bevor der Benutzer tatsächlich jedes Feld richtig gemacht hat (keine Validierungsfehler).
Die Methode Button Click Event:
protected void btnNext_Click(object sender, EventArgs e)
{
Page.Validate();
if(Page.IsValid)
{
//code
}
else
{
foreach (IValidator validator in Validators)
{
if (!validator.IsValid)
{
PageValidatorErrors error = new PageValidatorErrors
{
WebsiteID = AppState.WebsiteID,
Page = Request.Url.AbsolutePath,
URL = Request.Url.ToString(),
UserIP = Tools.GetIP(),
ErrorMessage = validator.ErrorMessage,
CreatedDate = DateTime.Now
};
pageValidatorErrorsRep.insert(error);
}
}
}
}
Irgendwelche Ideen, wie ich Logmeldungen theese könnte?
Edit:
<script type="text/javascript">
function validatePage()
{
if (window.Page_IsValid != true)
{
//Page_Validators is an array of validation controls in the page.
if (window.Page_Validators != undefined && window.Page_Validators != null)
{
//Looping through the whole validation collection.
for (var i = 0; i < window.Page_Validators.length; i++)
{
window.ValidatorEnable(window.Page_Validators[i]);
//if condition to check whether the validation was successfull or not.
if (!window.Page_Validators[i].isvalid)
{
var errMsg = window.Page_Validators[i].getAttribute('ErrorMessage');
alert(errMsg);
}
}
}
}
}
</script>
Oh, ich sehe, Sie zu fragen, wie in den Client-hook Side JavaScript, das die asp.net Validatoren emittieren. – MatthewMartin
danke für das validator loop Beispiel, ich war gerade dabei, es auf eigene Faust zu schreiben :) – rdmptn