我正在使用 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);
两种方法的定义是:
[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) { }
我快疯了这两个过程之间的区别在哪里。请告知,任何线索/想法都会立即得到测试!谢谢!