将ObjectDataSource对象级别的值传递给ASP .NET Control

时间:2012-07-16 07:04:26

标签: asp.net objectdatasource

我正在使用ObjectDataSource和FormView控件。

在ObjectDataSource中,我指定了一个类型,以及一个执行Insert操作的方法。但是,一旦Insert完成,我想将用户重定向到其他页面,我需要新创建/持久对象的ID。

所以在FormView中:

OnItemInserted="OnFormItemInserted"

处理程序我需要访问该ID。但是如何从ObjectDataSource级别优雅地传递该id?我可以用

HttpContext.Current.Items

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

由于

1 个答案:

答案 0 :(得分:2)

你尝试过这样简单的事情:

在您的数据对象

更新ObjectDataSource控件中配置的insert方法以返回生成的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
}