Jak: ověření dat při přidání nového řádku na ovládací prvek objektu ListObject
Uživatelé mohou přidávat nové řádky ListObject ovládací prvek vázaný na data.Před provedením změn do zdroje dat, můžete ověřit data uživatele.
Platí pro: Informace v tomto tématu se vztahují na projekty na úrovni dokumentu i na úrovni aplikace v aplikacích Excel 2013 a Excel 2010. Další informace naleznete v tématu Funkce aplikace Office a typ projektu.
Ověření dat
Kdykoli přidat řádek do ListObject , je vázán na data, BeforeAddDataBoundRow je vyvolána událost.Tato událost k ověřování dat, můžete zpracovat.Například pokud aplikace vyžaduje pouze zaměstnanci ve věku od 18 do 65, které mohou být přidány do zdroje dat, můžete ověřit, že stáří zadali spadá do rozsahu přidat řádek.
[!POZNÁMKA]
Je vhodné vždy zkontrolovat vstupu uživatele na serveru s klientem.Další informace naleznete v tématu Creating Secure User Interfaces.
Pro ověření dat při nový řádek je přidán do objektu ListObject s vazbou na data
Vytvoření proměnné pro ID a DataTable na úrovni třídy.
Dim id As Integer = 0 Dim employeeTable As System.Data.DataTable
private int id = 0; private System.Data.DataTable employeeTable;
Vytvořit novou DataTable a přidat vzorek sloupce a data Startup obslužné rutiny Sheet1 třídy (v úrovni dokumentů projektu) nebo ThisAddIn třídy (v projektu úroveň aplikace).
employeeTable = New System.Data.DataTable("Employees") Dim column As System.Data.DataColumn = _ employeeTable.Columns.Add("Id", GetType(Int32)) column.AllowDBNull = False employeeTable.Columns.Add("FirstName", GetType(String)) employeeTable.Columns.Add("LastName", GetType(String)) employeeTable.Columns.Add("Age", GetType(Int32)) employeeTable.Rows.Add(id, "Nancy", "Anderson", 56) employeeTable.Rows.Add(id, "Robert", "Brown", 44) id += 1 list1.SetDataBinding(employeeTable, "", "FirstName", "LastName", "Age")
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);
Přidejte kód list1_BeforeAddDataBoundRow zkontrolujte, zda stáří zadali leží v přijatelném rozsahu obslužnou rutinu události.
Private Sub list1_BeforeAddDataBoundRow(ByVal sender As Object, ByVal e As _ Microsoft.Office.Tools.Excel.BeforeAddDataBoundRowEventArgs) _ Handles list1.BeforeAddDataBoundRow Dim row As System.Data.DataRow = (CType(e.Item, System.Data.DataRowView)).Row If Not row("Age") Is Nothing And Not row("Age") Is Convert.DBNull Then Dim ageEntered As Integer = CType(row("Age"), Int32) If ageEntered < 21 Or ageEntered > 65 Then System.Windows.Forms.MessageBox.Show _ ("Age must be between 21 and 65. The row cannot be added.") e.Cancel = True Return End If row("ID") = id id += 1 Else System.Windows.Forms.MessageBox.Show("You must enter an age.") e.Cancel = True End If End Sub
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; } }
Probíhá kompilace kódu
Tento příklad kódu předpokládá, že máte existující ListObject s názvem list1 na listu, zobrazí se tento kód.
Viz také
Úkoly
Jak: mapovat na Data objektu ListObject sloupce
Koncepty
Rozšíření dokumenty aplikace Word a Excel v doplňky úroveň aplikace v době spuštění
Přidání ovládacích prvků do dokumentů sady Office v době spuštění
Ovládací prvek objektu ListObject
Automatizace aplikace Excel pomocí rozšířené objekty