Смехотворец
Зарегистрирован: 28 March 2005
Сообщения: 1157
Примеры кода: 1
|
RE[2]: ObjectDataSource + DataSet (ASP.NET 2.0) как настроить UPDATE? |
12 May 2006 20:00 |
|
|
|
|
Вот синтетический пример с сутью проблемы:
Описание DetailsView (DataKeyNames прописываются в нем, а в DataObject их нет):
<asp:DetailsView ID="DetailsView1" runat="server" AllowPaging="True" AutoGenerateRows="False" DataKeyNames="K" DataSourceID="ObjectDataSource1" Height="50px" Width="125px">
<Fields>
<asp:BoundField DataField="K" HeaderText="K" ReadOnly="True" SortExpression="K" /><!-- Вот если здесь написать ReadOnly="False", то заработает, правда обновлять ничего не будет, но это следующая проблема. Если написать Visible="False", или вообще удалить поле, то снова сломается. -->
<asp:BoundField DataField="V" HeaderText="V" SortExpression="V" />
<asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />
</Fields>
</asp:DetailsView>
Описание ObjectDataSource (в коде следует сразу за DetailsView ):
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" DeleteMethod="Delete" InsertMethod="Insert" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData"
TypeName="CrmTableAdapters.Table_1TableAdapter" UpdateMethod="Update">
<DeleteParameters>
<asp:Parameter Name="Original_K" Type="Object" />
<asp:Parameter Name="Original_V" Type="String" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="K" Type="Object" /><!-- ключ типа UNIQUEIDENTIFIER -->
<asp:Parameter Name="V" Type="String" /><!-- значение типа NVARCHAR(50) -->
<asp:Parameter Name="Original_K" Type="Object" />
<asp:Parameter Name="Original_V" Type="String" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="K" Type="Object" />
<asp:Parameter Name="V" Type="String" />
</InsertParameters>
</asp:ObjectDataSource>
Кстати, удаление тоже ничего не удаляет, а добавление работает.
Датасеты хотел заюзать, чтобы не писать ручками бизнес-объекты, т.к. нужно в течение 3-4-х недель приложение дописать. Программирую за еду.
|
|