0

我正在使用 ObjectDataSource 和 FormView 控件。

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

所以在 FormView 中:

OnItemInserted="OnFormItemInserted"

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

HttpContext.Current.Items

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

谢谢

4

1 回答 1

2

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

在您的数据对象中

更新控件中配置的插入方法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
}
于 2012-07-16T07:24:06.503 回答