Arhn - архитектура программирования

Связанный DataGridView с несколькими источниками

я боролся с этим в течение некоторого времени, и это сводит меня с ума. Это ситуация:

У меня есть ограниченный DataGridView, который я разработал с дизайнером визуальной студии. Вся информация отображается соответственно.

по моему DataGridView у меня 2 ComboBoxes тут данные тоже правильно отображаются. Я хочу, чтобы, если я нажму на список опций ComboBoxea, показать.

Поскольку DataGridView привязан к источнику, я не могу использовать метод ComboBox.Items.Add(). Поэтому я создал еще один источник данных в дизайнере и во время выполнения изменил datasource для этого конкретного поля со списком. Теперь в списке отображаются нужные мне параметры, да!

Теперь я хочу сохранить эту недавно добавленную или измененную строку в базу данных... поэтому я использую для этого следующий метод (я вызываю метод для события RowLeave из DataGridView):

        if (tasksDataSet.HasChanges()
        {
            try
            {
                tasksBindingSource.EndEdit();
                tasksDataSet.GetChanges();
                tasksTableAdapter.Update(tasksDataSet);
            }
            catch (Exception ex)
            {

            }
         }

Это не сработает для ComboBoxes, так как это другой источник данных.

Итак, в основном я хочу:

  • Используйте источник данных для DataGridView
  • Изменить/добавить элементы в DataGridViewComboBox
  • Сохраните изменения, внесенные в (полное) DataGridView в базу данных

Как я могу заставить это работать?


Ответы:


1

если ваша проблема заключается в сохранении текущих данных, которые передаются в виде сетки. чем я предлагаю попробовать использовать session . при привязке данных к DataSource назначьте их session["SomeID"] . если вы меняете привязку, снова назначьте ему тот же сеанс.

следующий шаг конвертирует сеанс в то, что вы хотите сохранить.

ex:

        //Datasource.
        list<User> DataBoundSource = new list<User>();

        DataGrid.DataSource = DataBoundSource;
        DataGrid.DatBind();
        //Assign to Session where you are binding this
        //every time
        Session["SameID"] = lsDataBoundSOurce;

        //your code.
        ...
        ...
        ...

        //covert that session to Datasource you want to save.

        list<User> saveData = (list<User>) Session["SameID"];

это основная идея, которую я получил. Я надеюсь, что это поможет вам. пожалуйста, дайте ему +1, если это поможет вам

30.10.2013
  • Это изменит источник данных для всей сетки данных, проблема с сохранением заключается в том, что у меня есть другой источник данных для поля со списком. 30.10.2013
  • я не говорю вам изменить источник данных. назначьте свой источник данных для сеанса, а затем сохраните этот сеанс, преобразовав его. если возможно, отправьте код, чтобы я мог вам помочь. Спасибо за ответ. 30.10.2013
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..