I too am having this exact problem.
My situation is that i have set up a master/details scenario with 2 gridviews, both are using typed .nettiers data sources. It all works fine, but when you try to insert a record on the second grid it fails, basically complaining that the foreign key (retrieved from the first grid) is null. In other words, it doesnt seem the typed data source is retrieving the foreign key when inserting, but does so when selecting. For reference here is the typed data source im using for the second grid:
<data:DiagnosisDataSource runat="server" id="dsDiagnoses" EnablePaging="False" SelectMethod="GetByPatientId" EnableCaching="False">
<Parameters>
<asp:ControlParameter Name="PatientId" ControlID="gridPatients" PropertyName="SelectedValue" Type="Int32" />
</Parameters>
</data:DiagnosisDataSource>
If i replace the above with a standard ASP.NET SQL data source, where i am able to specify the control parameter in the Insert section it works perfectly! So it seems to me that the typed data source does not retrieve the control parameter value when inserting ... It must be possible as this is a very common scenario in web apps. Can someone explain how to achieve this using .netTiers data sources. Cheers.