问候,
1) 我假设 ObjectDataSource 仅在第一次请求时自动绑定(bind)到数据源,但不会在回发时自动绑定(bind)到数据源(否则 ObjectDataSource.Selecting 事件也会在回发时触发,但是事实并非如此):
A) 因此,强制 ObjectDataSource 也绑定(bind)回发的唯一方法是手动调用 DataBind()?
2) 假设 DropDownList1 将 DataSourceID 设置为 ObjectDataSource1 ,那么第一次加载页面时,ObjectDataSource1 将自动调用DropDownList1.DataBind()(在Page.PreRender事件之后)并插入检索到的数据。
A) 但是,如果我们在页面首次加载时也手动调用 DropDownList1.DataBind() 会怎样:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack) DropDownList1.DataBind();
}
ObjectDataSource1 是否会注意到 DropDownList1.DataBind() 已被调用,因此不会自动调用 DropDownList1.DataBind() ? p>
B) 通常 ObjectDataSource1.Selecting 事件在 Page.Prerender 事件之后触发。但是如果在内部调用 DropDownList1.DataBind() 会怎样Page_Load()?
在这种情况下,ObjectDataSource1.Selecting 事件会在 Page.PreRender 之前触发吗?
谢谢
最佳答案
在这种情况下,ObjectDataSource1.Selecting 事件会在 Page.PreRender 之前触发吗?
是的,它在 Page.PreRender 之前调用。
原因:每个设置了 DataSourceID 属性的数据绑定(bind)控件都会在预渲染事件中调用其 DataBind 方法,
检查页面生命周期 http://msdn.microsoft.com/en-us/library/ms178472.aspx
http://dotnetshoutout.com/Data-Binding-Events-for-Data-Bound-Controls-in-ASPNet
由于加载事件是在预渲染之前调用的,并且当调用 databind 方法时,那么在您的情况下,objectdatasource selected 事件在预渲染之前触发
关于c# - 这是我们可以强制 ObjectDataSource 的唯一方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1262220/