LinqDataSource.Inserting イベント
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
挿入操作の前に発生します。
public:
event EventHandler<System::Web::UI::WebControls::LinqDataSourceInsertEventArgs ^> ^ Inserting;
public event EventHandler<System.Web.UI.WebControls.LinqDataSourceInsertEventArgs> Inserting;
member this.Inserting : EventHandler<System.Web.UI.WebControls.LinqDataSourceInsertEventArgs>
Public Custom Event Inserting As EventHandler(Of LinqDataSourceInsertEventArgs)
イベントの種類
例
次の例は、挿入操作の前にデータを Inserting 変更する イベントのイベント ハンドラーを示しています。 プロパティの NewObject オブジェクトは、 という名前 Product
の型にキャストされます。
DateModified
オブジェクトの Product
プロパティは、現在の日付と時刻に設定されます。
protected void LinqDataSource_Inserting(object sender, LinqDataSourceInsertEventArgs e)
{
Product product = (Product)e.NewObject;
product.DateModified = DateTime.Now;
}
Protected Sub LinqDataSource_Inserting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.LinqDataSourceInsertEventArgs)
Dim product As Product
product = CType(e.NewObject, Product)
product.DateModified = DateTime.Now
End Sub
次の例は、検証例外を取得するイベントの Inserting イベント ハンドラーを示しています。
Protected Sub LinqDataSource_Inserting(ByVal sender As Object, _
ByVal e As LinqDataSourceInsertEventArgs)
If (e.Exception IsNot Nothing) Then
For Each innerException As KeyValuePair(Of String, Exception) _
In e.Exception.InnerExceptions
Label1.Text &= innerException.Key & ": " & _
innerException.Value.Message & "<br />"
Next
e.ExceptionHandled = True
End If
End Sub
protected void LinqDataSource_Inserting(object sender,
LinqDataSourceInsertEventArgs e)
{
if (e.Exception != null)
{
foreach (KeyValuePair<string, Exception> innerException in
e.Exception.InnerExceptions)
{
Label1.Text += innerException.Key + ": " +
innerException.Value.Message + "<br />";
}
e.ExceptionHandled = true;
}
}
前の例では、検証例外を取得します。 値がプロパティの型と一致しない場合、例外がスローされることがあります。 また、次の例のようなカスタマイズされたチェックからスローされる場合もあります。 メソッドは OnAgeChanging
、プロパティの数値が負ではないことを Age
確認します。
partial void OnAgeChanging(int? value)
{
if (value < 0)
{
throw new Exception("Age cannot be a negative number.");
}
}
Private Sub OnAgeChanging(ByVal value As System.Nullable(Of Integer))
If (value < 0) Then
Throw New Exception("Age cannot be a negative number.")
End If
End Sub
注釈
イベントを Inserting 処理して、挿入するオブジェクトを検証したり、データ クラスのデータ検証エラーを調べたり、挿入操作の前に値を変更したり、挿入操作をキャンセルしたりします。 LinqDataSourceInsertEventArgsこのイベントのイベント ハンドラーに渡されるオブジェクトには、データ ソースに挿入する新しいオブジェクトが含まれています。
挿入操作中に検証エラーが発生した場合、 LinqDataSourceInsertEventArgs オブジェクトには、データ クラスによってスローされる検証例外が含まれます。 挿入する値がデータ クラスのプロパティの型と一致しない場合、またはカスタム検証チェックに合格しない場合、検証エラーが発生します。 イベントのイベント ハンドラー Inserting では、検証例外を取得し、適切なアクションを実行できます。
イベントのイベント ハンドラー Inserting で例外がスローされた場合は、そのイベント ハンドラーで例外を処理する必要があります。 例外は、(オブジェクトの プロパティを介して) イベントのInsertedイベント ハンドラーにExceptionLinqDataSourceStatusEventArgs渡されません。 プロパティには Exception 、イベントの後 Inserting にスローされる例外のみが含まれます。
適用対象
.NET