将值从ObjectDataSource对象级别传递到ASP.NET控件

将值从ObjectDataSource对象级别传递到ASP.NET控件,asp.net,objectdatasource,Asp.net,Objectdatasource,我正在使用ObjectDataSource和FormView控件 在ObjectDataSource中,我指定了一个类型和一个执行插入操作的方法。然而,一旦插入完成,我想将用户重定向到另一个页面,我需要新创建/持久化对象的ID 因此,在FormView中: OnItemInserted="OnFormItemInserted" 我需要访问该ID。但是如何从ObjectDataSource级别优雅地传递该ID呢?我可以用 HttpContext.Current.Items 在ObjectDat

我正在使用ObjectDataSource和FormView控件

在ObjectDataSource中,我指定了一个类型和一个执行插入操作的方法。然而,一旦插入完成,我想将用户重定向到另一个页面,我需要新创建/持久化对象的ID

因此,在FormView中:

OnItemInserted="OnFormItemInserted"
我需要访问该ID。但是如何从ObjectDataSource级别优雅地传递该ID呢?我可以用

HttpContext.Current.Items
在ObjectDataSource内部处理对象,但我不喜欢它,因为我的处理类型对ASP.NET(关注点分离?)一无所知


谢谢

您尝试过这样简单的方法吗:

在数据对象中 更新
ObjectDataSource
控件中配置的插入方法以返回生成的ID:

public int Insert(string firstName, int lastname)
{
    // return the ID generated by the insert command
    return 4;
}
ASPX代码隐藏 就是这样,在您处理
Inserted
事件的页面中:

protected void ods_Inserted(object sender, ObjectDataSourceStatusEventArgs e)
{
    var res = e.ReturnValue.ToString();
    this.lblMessage.Text = res;
    // add your cool additional logic and redirect stuff
}