GridView=>DetailsView:Update не работает
От: skodnik  
Дата: 24.01.11 09:26
Оценка:
Есть в БД таблица из которой я в 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 данные не изменяются. Руками ничего не редактировал, все элементы накидал мышкой и сконфигурировал тоже мышкой (для чистоты эксперимента).
Re: GridView=>DetailsView:Update не работает
От: skodnik  
Дата: 24.01.11 09:40
Оценка:
Сорри, грабли были в pageload->DataBind(). Нельзя было этого делать.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.