Проверка данных при добавлении новой строки в элемент управления ListObject
Пользователи могут добавлять новые строки в элемент управления ListObject с привязкой к данным. Вы можете проверять данные пользователя перед фиксацией изменений в источнике данных.
Область применения. Сведения в этом разделе относятся к проектам уровня документа и проектам надстроек VSTO для Excel. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.
Проверка данных
Каждый раз, когда строка добавляется в ListObject с привязкой к данным, возникает событие BeforeAddDataBoundRow . Это событие можно обработать для выполнения проверки данных. Например, если приложению требуется, чтобы только сотрудники в возрасте от 18 до 65 лет могли быть добавлены в источник данных, убедитесь, что возраст, введенный в этот диапазон, до добавления строки.
Примечание.
Всегда следует проверять входные данные пользователя на сервере, как и на клиенте. Дополнительные сведения см. в разделе "Безопасные клиентские приложения".
Проверка данных при добавлении новой строки в элемент управления ListObject с привязкой к данным
Создайте переменные для идентификатора и объекта DataTable на уровне класса.
Создайте новые DataTable и добавьте примеры столбцов и данных в
Startup
обработчикSheet1
событий класса (в проекте уровня документа) илиThisAddIn
классе (в проекте надстройки VSTO).employeeTable = new System.Data.DataTable("Employees"); System.Data.DataColumn column = employeeTable.Columns.Add ("Id", typeof(int)); column.AllowDBNull = false; employeeTable.Columns.Add("FirstName", typeof(string)); employeeTable.Columns.Add("LastName", typeof(string)); employeeTable.Columns.Add("Age", typeof(int)); employeeTable.Rows.Add(id, "Nancy", "Anderson", "56"); employeeTable.Rows.Add(id, "Robert", "Brown", "44"); id++; list1.SetDataBinding(employeeTable, "", "FirstName", "LastName", "Age"); list1.BeforeAddDataBoundRow +=new Microsoft.Office.Tools.Excel. BeforeAddDataBoundRowEventHandler(list1_BeforeAddDataBoundRow);
Добавьте код в обработчик событий
list1_BeforeAddDataBoundRow
, чтобы проверить, попадает ли возраст в допустимый диапазон.private void list1_BeforeAddDataBoundRow(object sender, Microsoft.Office.Tools.Excel.BeforeAddDataBoundRowEventArgs e) { System.Data.DataRow row = ((System.Data.DataRowView)e.Item).Row; if (row["Age"] != null && row["Age"] != Convert.DBNull) { int ageEntered = (int)row["Age"]; if (ageEntered < 21 || ageEntered > 65) { System.Windows.Forms.MessageBox.Show ("Age must be between 21 and 65. The row cannot be added."); e.Cancel = true; return; } row["ID"] = id; id++; } else { System.Windows.Forms.MessageBox.Show("You must enter an age."); e.Cancel = true; } }
Компиляция кода
В этом примере кода предполагается, что в листе, в котором этот код появляется, имеется существующий элемент управления ListObject с именем list1
.
Связанный контент
- Расширение документов Word и книг Excel в надстройках VSTO во время выполнения
- Элементы управления в документах Office
- Добавление элементов управления в документы Office во время выполнения
- Элемент управления ListObject
- Автоматизация Excel с помощью расширенных объектов
- Практическое руководство. Сопоставление столбцов ListObject с данными