Мне нужно соединить два тега ObjectDataSource.
Первый будет иметь параметр строки запроса, а второй - параметр, который является одним из полей в наборе результатов первого. Соотношение один к одному, поэтому я не могу поместить второго в сетку и использовать управляющий параметр
<asp:ObjectDataSource ID="OrderObjectDataSource" runat="server"
SelectMethod="GetById"
TypeName=" MyProject.Business.Repositories.OrderRepository"
OnSelected="OrderObjectDataSource_OnSelected">
<SelectParameters>
<asp:QueryStringParameter DefaultValue="86" Name="orderId"
QueryStringField="ioid" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
<asp:ObjectDataSource runat="server" ID="AdvertiserObjectDataSource"
TypeName="MyProject.Business.Repositories.AdvertiserRepository"
SelectMethod="GetAdvertiserById"
OnSelecting="AdvertiserObjectDataSource_OnSelecting">
<SelectParameters>
<asp:Parameter Name="advertiserId" Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
</asp:Content>
private Order _order;
protected void OrderObjectDataSource_OnSelected(object source, ObjectDataSourceStatusEventArgs e)
{
if (e.ReturnValue != null)
{
_order = (Order) e.ReturnValue;
AdvertiserObjectDataSource.SelectParameters["advertiserId"].DefaultValue =
_order.AdvertiserId.ToString();
AdvertiserObjectDataSource.Select();
}
}
protected void AdvertiserObjectDataSource_OnSelecting(object source, ObjectDataSourceSelectingEventArgs e)
{
if (_order != null)
e.InputParameters["advertiserId"] = _order.AdvertiserId;
}
Это не работает, потому что AdvertiserObjectDataSource_OnSelecting вызывается перед OrderObjectDataSource_OnSelected.
Спасибо за вашу помощь.