Есть в БД таблица из которой я в GridView выбираю список значений, при этом в Select использую фильтр, который использует SessionParameter.
Вот так выглядит датасорс:
<asp:SqlDataSource ID="gridSource" runat="server"
ConnectionString="<%$ ConnectionStrings:PhotoBooConnectionString %>"
SelectCommand="SELECT [Id], [email], [strid], [name], [siteurl], [Laboratory_Id] FROM [PartnerSet] WHERE ([Laboratory_Id] = @Laboratory_Id)">
<SelectParameters>
<asp:SessionParameter Name="Laboratory_Id" SessionField="labid" Type="Int32" />
</SelectParameters>
</asp:SqlDataSource>
далее на странице помещаю DetailsView с возможностью редактирования/создания/удаления элементов из той же таблицы. Вот так выглядит датасорс:
<asp:SqlDataSource ID="detailView" runat="server"
ConflictDetection="CompareAllValues"
ConnectionString="<%$ ConnectionStrings:PhotoBooConnectionString %>"
DeleteCommand="DELETE FROM [PartnerSet] WHERE [Id] = @original_Id AND [email] = @original_email AND [strid] = @original_strid AND [name] = @original_name AND [siteurl] = @original_siteurl AND [Laboratory_Id] = @original_Laboratory_Id"
InsertCommand="INSERT INTO [PartnerSet] ([email], [strid], [name], [siteurl], [Laboratory_Id]) VALUES (@email, @strid, @name, @siteurl, @Laboratory_Id)"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT [Id], [email], [strid], [name], [siteurl], [Laboratory_Id] FROM [PartnerSet] WHERE ([Id] = @Id)"
UpdateCommand="UPDATE [PartnerSet] SET [email] = @email, [strid] = @strid, [name] = @name, [siteurl] = @siteurl, [Laboratory_Id] = @Laboratory_Id WHERE [Id] = @original_Id AND [email] = @original_email AND [strid] = @original_strid AND [name] = @original_name AND [siteurl] = @original_siteurl AND [Laboratory_Id] = @original_Laboratory_Id">
<DeleteParameters>
<asp:Parameter Name="original_Id" Type="Int32" />
<asp:Parameter Name="original_email" Type="String" />
<asp:Parameter Name="original_strid" Type="String" />
<asp:Parameter Name="original_name" Type="String" />
<asp:Parameter Name="original_siteurl" Type="String" />
<asp:Parameter Name="original_Laboratory_Id" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="email" Type="String" />
<asp:Parameter Name="strid" Type="String" />
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="siteurl" Type="String" />
<asp:Parameter Name="Laboratory_Id" Type="Int32" />
</InsertParameters>
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="Id"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="email" Type="String" />
<asp:Parameter Name="strid" Type="String" />
<asp:Parameter Name="name" Type="String" />
<asp:Parameter Name="siteurl" Type="String" />
<asp:Parameter Name="Laboratory_Id" Type="Int32" />
<asp:Parameter Name="original_Id" Type="Int32" />
<asp:Parameter Name="original_email" Type="String" />
<asp:Parameter Name="original_strid" Type="String" />
<asp:Parameter Name="original_name" Type="String" />
<asp:Parameter Name="original_siteurl" Type="String" />
<asp:Parameter Name="original_Laboratory_Id" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>
Но при редактировании элеменетов в DetailsView данные не изменяются. Руками ничего не редактировал, все элементы накидал мышкой и сконфигурировал тоже мышкой (для чистоты эксперимента).
Сорри, грабли были в pageload->DataBind(). Нельзя было этого делать.