Я пытаюсь выяснить, как уведомить пользователя, какое поле не удалось проверить. Я устанавливаю LINQ to SQL class datacontext для доступа к базе данных с страниц ASP.net. Поскольку пользовательский ввод будет осуществляться с помощью форм веб-интерфейса и импорта из файлов Excel, я бы хотел написать логику проверки в одном месте. Идея этого заключается в том, когда я импортирую из excel. Я соберу сообщения об ошибках для каждой строки и покажу резюме. Логическое место, похоже, расширяет класс, сгенерированный LINQ to SQL. По большей части документации и примеров, я должен сделать что-то вроде этого:ErrorProvider (из Windows Forms) для ASP.net и linq-to-sql?
public partial class Customer
{
partial void OnTitleChanging(string value)
{
if (!Char.IsUpper(value[0])) {
throw new ValidationException(
"Title must start with an uppercase letter.");}
}
}
Проблема с этим подходом является то, что проверка остановится на первой неудавшейся поле.
В Windows Forms Link1, если я определяю компонент ErrorProvider в форме и устанавливаю его свойство DataSource в ваш BindingSource, исключение будет указано красным кругом справа от проверяемого элемента управления. Всплывающая подсказка этого красного круга покажет сообщение об исключении.
Есть ли что-то подобное для страниц ASP.net? Я использую элемент управления listview и встроенное редактирование в списке.
Обновления: - Я на самом деле сделал что-то похожее на то, что указывает Ник Карвер. Link2. Вместо того, чтобы бросать исключение, я записываю сообщение об ошибке.
public partial class PQSSClassesDataContext
{
public partial class ErrorFeilds
{
private static List<string> Messages = new List<string>();
public void AddErrorMessage(string message)
{
Messages.Add(message);
}
public List<string> GetErrorMessages()
{
return Messages;
}
}
}
Я на самом деле зациклен на том, как отобразить сообщение об ошибке в поле. Вот почему я искал что-то вроде ErrorProvider. Я уже использую события вместо исключений для записи ошибок. Любая идея как пометить соответствующее поврежденное поле из файла codebehind?
Любая помощь приветствуется.
+1, очень чистое решение – JoshJordan