ListObject denetimine yeni satır eklendiğinde verileri doğrulama
Kullanıcılar verilere bağlı bir ListObject denetime yeni satırlar ekleyebilir. Değişiklikleri veri kaynağına işlemeden önce kullanıcının verilerini doğrulayabilirsiniz.
Şunlar için geçerlidir: Bu konudaki bilgiler, Excel için belge düzeyi projeler ve VSTO Eklenti projeleri için geçerlidir. Daha fazla bilgi için bkz. Office uygulaması ve proje türüne göre kullanılabilen özellikler.
Veri doğrulaması
Verilere bağlı bir ListObject satır eklendiğinde olay BeforeAddDataBoundRow oluşturulur. Veri doğrulamanızı gerçekleştirmek için bu olayı işleyebilirsiniz. Örneğin, uygulamanız veri kaynağına yalnızca 18 ile 65 yaş arasındaki çalışanların eklenebilmesini gerektiriyorsa, girilen yaşın satır eklenmeden önce bu aralığın içinde olduğunu doğrulayın.
Not
İstemciye ek olarak her zaman sunucuda kullanıcı girişini de denetlemeniz gerekir. Daha fazla bilgi için bkz . Güvenli istemci uygulamaları.
Veriye bağlı ListObject'e yeni bir satır eklendiğinde verileri doğrulamak için
Kimlik için ve DataTable sınıf düzeyinde değişkenler oluşturun.
Yeni DataTable bir oluşturun ve sınıfın
Startup
olay işleyicisine (belge düzeyi projesinde) veyaThisAddIn
sınıfınaSheet1
(VSTO Eklenti projesinde) örnek sütunlar ve veriler ekleyin.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);
Girilen yaşın kabul edilebilir aralık içinde olup olmadığını denetlemek için olay işleyicisine kod
list1_BeforeAddDataBoundRow
ekleyin.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; } }
Kodu derleme
Bu kod örneğinde, bu kodun görüntülendiği çalışma sayfasında adlı bir ListObject dosyanız list1
olduğu varsayılır.
İlgili içerik
- VSTO Eklentilerinde Word belgelerini ve Excel çalışma kitaplarını çalışma zamanında genişletme
- Office belgelerindeki denetimler
- Çalışma zamanında Office belgelerine denetim ekleme
- ListObject denetimi
- Genişletilmiş nesneleri kullanarak Excel'i otomatikleştirme
- Nasıl yapılır: ListObject sütunlarını verilere eşleme