Postupy: Ověření dat při přidání nového řádku do ovládacího prvku 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 Excelu 2013 a v Excelu 2010. Další informace najdete v tématu Dostupné funkce podle aplikací systému 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 Secure Client Applications.
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
Postupy: Mapování sloupců objektu ListObject na data
Koncepty
Rozšíření dokumentů aplikace Word a sešitů aplikace Excel v doplňcích na úrovni aplikace za běhu
Přidání ovládacích prvků do dokumentů Office za běhu
Automatizace v aplikaci Excel s použitím rozšířených objektů