我正在使用ObjectDataSource和FormView控件。
在ObjectDataSource中,我指定了一个类型,以及一个执行Insert操作的方法。但是,一旦Insert完成,我想将用户重定向到其他页面,我需要新创建/持久对象的ID。
所以在FormView中:
OnItemInserted="OnFormItemInserted"
处理程序我需要访问该ID。但是如何从ObjectDataSource级别优雅地传递该id?我可以用
HttpContext.Current.Items
在ObjectDataSource处理对象中,但我不喜欢它,因为我的处理类型对ASP .NET一无所知(关注点分离?)。
由于
答案 0 :(得分:2)
你尝试过这样简单的事情:
更新ObjectDataSource
控件中配置的insert方法以返回生成的ID:
public int Insert(string firstName, int lastname)
{
// return the ID generated by the insert command
return 4;
}
就是这样,在您处理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
}