Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Poznámka:
Ovládací prvek DataGridView nahrazuje a přidává funkce do ovládacího prvku DataGrid; ovládací prvek DataGrid je však zachován pro zpětnou kompatibilitu i budoucí použití, pokud zvolíte. Další informace naleznete v tématu Rozdíly mezi ovládacím prvkem Windows Forms DataGridView a ovládacím prvkem DataGrid.
Pro ovládací prvek Windows Forms DataGrid jsou k dispozici dva typy ověřování vstupu. Pokud se uživatel pokusí zadat hodnotu, která je nepřijatelného datového typu pro buňku, například řetězec do celého čísla, bude nová neplatná hodnota nahrazena starou hodnotou. Tento typ ověřování vstupu se provádí automaticky a nelze ho přizpůsobit.
Druhý typ ověření vstupu lze použít k odmítnutí všech nepřijatelných dat, například 0 hodnoty v poli, které musí být větší nebo rovno 1, nebo nevhodný řetězec. Toto se provádí v datové sadě napsáním obslužné rutiny pro událost ColumnChanging nebo RowChanging. Následující příklad používá událost ColumnChanging, protože nepřijatelná hodnota je zakázána konkrétně pro sloupec "Product". Událost RowChanging můžete použít ke kontrole, jestli je hodnota sloupce Koncové datum pozdější než sloupec Počáteční datum ve stejném řádku.
Ověření uživatelského vstupu
Napište kód pro zpracování ColumnChanging události pro příslušnou tabulku. Při zjištění nevhodného vstupu zavolejte metodu SetColumnError objektu DataRow.
Private Sub Customers_ColumnChanging(ByVal sender As Object, _ ByVal e As System.Data.DataColumnChangeEventArgs) ' Only check for errors in the Product column If (e.Column.ColumnName.Equals("Product")) Then ' Do not allow "Automobile" as a product. If CType(e.ProposedValue, String) = "Automobile" Then Dim badValue As Object = e.ProposedValue e.ProposedValue = "Bad Data" e.Row.RowError = "The Product column contains an error" e.Row.SetColumnError(e.Column, "Product cannot be " & _ CType(badValue, String)) End If End If End Sub//Handle column changing events on the Customers table private void Customers_ColumnChanging(object sender, System.Data.DataColumnChangeEventArgs e) { //Only check for errors in the Product column if (e.Column.ColumnName.Equals("Product")) { //Do not allow "Automobile" as a product if (e.ProposedValue.Equals("Automobile")) { object badValue = e.ProposedValue; e.ProposedValue = "Bad Data"; e.Row.RowError = "The Product column contains an error"; e.Row.SetColumnError(e.Column, "Product cannot be " + badValue); } } }Připojte obslužnou rutinu události k události.
Do Load události formuláře nebo jeho konstruktoru umístěte následující kód.
' Assumes the grid is bound to a dataset called customersDataSet1 ' with a table called Customers. ' Put this code in the form's Load event or its constructor. AddHandler customersDataSet1.Tables("Customers").ColumnChanging, AddressOf Customers_ColumnChanging// Assumes the grid is bound to a dataset called customersDataSet1 // with a table called Customers. // Put this code in the form's Load event or its constructor. customersDataSet1.Tables["Customers"].ColumnChanging += new DataColumnChangeEventHandler(this.Customers_ColumnChanging);
Viz také
.NET Desktop feedback