Weryfikowanie danych po dodaniu nowego wiersza do kontrolki ListObject
Użytkownicy mogą dodawać nowe wiersze do kontrolki powiązanej ListObject z danymi. Przed zatwierdzeniem zmian w źródle danych możesz zweryfikować dane użytkownika.
Dotyczy: informacje w tym temacie dotyczą projektów na poziomie dokumentu i projektów dodatków VSTO dla programu Excel. Aby uzyskać więcej informacji, zobacz Funkcje dostępne przez aplikacja pakietu Office lication i typ projektu.
Sprawdzanie poprawności danych
Za każdym razem, gdy wiersz jest dodawany do elementu powiązanego ListObject z danymi, BeforeAddDataBoundRow zdarzenie jest zgłaszane. To zdarzenie można obsłużyć w celu przeprowadzenia weryfikacji danych. Jeśli na przykład aplikacja wymaga dodania do źródła danych tylko pracowników w wieku od 18 do 65 lat, sprawdź, czy wprowadzony wiek mieści się w tym zakresie przed dodaniu wiersza.
Uwaga
Należy zawsze sprawdzać dane wejściowe użytkownika na serwerze oprócz klienta. Aby uzyskać więcej informacji, zobacz Zabezpieczanie aplikacji klienckich.
Aby zweryfikować dane po dodaniu nowego wiersza do obiektu ListObject powiązanego z danymi
Utwórz zmienne dla identyfikatora i DataTable na poziomie klasy.
Utwórz nowe DataTable i dodaj przykładowe kolumny i dane w
Startup
procedurze obsługiSheet1
zdarzeń klasy (w projekcie na poziomie dokumentu) lubThisAddIn
klasie (w projekcie dodatku 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);
Dodaj kod do
list1_BeforeAddDataBoundRow
programu obsługi zdarzeń, aby sprawdzić, czy wprowadzony wiek mieści się w dopuszczalnym zakresie.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; } }
Kompilowanie kodu
W tym przykładzie kodu przyjęto założenie, że masz istniejącą ListObject nazwę list1
w arkuszu, w którym pojawia się ten kod.
Powiązana zawartość
- Rozszerzanie dokumentów programu Word i skoroszytów programu Excel w dodatku VSTO w czasie wykonywania
- Kontrolki dotyczące dokumentów pakietu Office
- Dodawanie kontrolek do dokumentów pakietu Office w czasie wykonywania
- Kontrolka ListObject
- Automatyzowanie programu Excel przy użyciu obiektów rozszerzonych
- Instrukcje: mapowania kolumn ListObject na dane