0

エンティティ モデルを編集するために formview を使用しています。簡略化された formview ヘッダー コードは次のとおりです。

<asp:FormView ID="formViewSalon" runat="server" DataSourceID="OdsSalonData">

オブジェクト データ ソース コードは次のとおりです。

<asp:ObjectDataSource ID="OdsSalonData" runat="server"  
                      DataObjectTypeName="WebApplication1.EDM.Salon" 
                      DeleteMethod="DeleteSalon" InsertMethod="CreateNewSalon"
                      SelectMethod="GetSalonBySalonId" 
                      TypeName="WebApplication1.EDM.SalonLogic" 
                      UpdateMethod="UpdateSalon" OnSelecting="OdsSalonData_Selecting">

[保存/更新] ボタンのコードは次のとおりです。

protected void ButtonSave_Click(object sender, EventArgs e)
{
    if (formViewSalon.CurrentMode == FormViewMode.Insert)
    {
        formViewSalon.InsertItem(true);
    }
    else if (formViewSalon.CurrentMode == FormViewMode.Edit)
    {
        formViewSalon.UpdateItem(true);
    }
}

フォームを更新しているUpdateSalonとき、次の行を実行しようとするとメソッドが起動します。

formViewSalon.UpdateItem(true);

しかし、新しいレコードを挿入しようとすると、CreateNewSalon実行中にメソッドが起動しません:

formViewSalon.InsertItem(true);

2 つのメソッドの定義は次のとおりです。

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]
public string CreateNewSalon(Salon newSalon) { }

と:

[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
public void UpdateSalon(Salon updatedSalon) { }

2つのプロセスの違いはどこにあるのか、私は夢中になっています。手がかり/アイデアはすぐにテストされるので、アドバイスしてください! ありがとう!

4

0 に答える 0