ASP.Net master / detail w / привязка данных к объектам DataSource - множественная вставка с принципами "все или ничего" - PullRequest
0 голосов
/ 11 октября 2010

Моя цель - позволить пользователю вводить заголовок заказа и подробные данные и сохранять все это одним нажатием кнопки, в одной транзакции, чтобы сохранить все или ничего.

Например:

Tables:    
    OrderHeader:
      Id,
      CustomerId,
      Comments,
      OrderDate,

    OrderLine
      Id,
      OrderId FK => OrderHeader
      ProductId,
      Quantity

Markup (abbreviated):
<asp:FormView ID="uxFormHeaderInfo" runat="server" DataSourceID="headerDataSource">
 <InsertItemTemplate>
  <%--Header Fields--%>
                 .....
  <asp:GridView ID="uxDetails" runat="server" DataSourceID="detailsDataSource">
  <%-- Markup --%>
                 .....
  </asp:GridView>
  <asp:Button ID="uxSave" runat="server" CommandName="Insert" />
 </InsertItemTemplate>
</asp:FormView>

На странице у меня будет элемент управления FormView, который будет содержать поля редактирования для CustomerId и комментариев, также у меня будет вложенный вид сетки или список, к которому я мог бы добавить позиции. Элементы управления FormView и gridview, скорее всего, будут связаны с независимыми элементами управления источниками данных. Я хочу, чтобы пользователь ввел информацию заголовка и позиции и щелкнул «Сохранить» только один раз в нижней части экрана.

Возможно ли это даже с использованием объектов LinqDataSource или ObjectDatasource? Если да, то можете ли вы указать мне хороший пример, который показывает, как сделать это при вставке в основной / подробный стиль, которая затрагивает 2 или более таблиц одним нажатием кнопки? Заранее спасибо.

[Изменить]

Изучив отзывы и обдумав эту тему, я пришел к выводу, что элементы управления источниками данных - просто неподходящий инструмент для работы. Так как они не могут по-настоящему справиться с делом, как это, это действительно ставит под сомнение их полезность ИМХО. Так много для нового пути ...

1 Ответ

1 голос
/ 12 октября 2010

Я не думаю, что это сработает с источником данных.По крайней мере, не то, что я знаю.Я бы сам справился с операцией сохранения.В событии Click вашей кнопки сохранения прочитайте введенные пользователем значения, включите их в транзакцию и вызовите свои бизнес-функции.

...