Показать сохраненные значения в отдельном выпадающем списке - PullRequest
0 голосов
/ 25 мая 2019

У меня есть раскрывающийся список в режиме редактирования, который имеет значение из базы данных. Что я хочу сделать, это отобразить сохраненное значение в отдельном выпадающем списке. Например, я сохранил две разные данные в базе данных с одним и тем же внешним ключом, чтобы определить, что эти две записи рассматриваются как одна. (См. Пример изображения ниже)

https://imgur.com/ex57YTO

Я использую только раскрывающийся список с одним выбором, и я только зацикливаю количество записей, чтобы определить, сколько раскрывающихся списков нужно отобразить на странице редактирования. Поэтому, если у меня есть события «Нет вреда» и «Жалобы», это должно отображаться в отдельном раскрывающемся списке, потому что то, что я сделал сейчас, они оба отображают в одном раскрывающемся списке, поэтому в результате получается, что запись дублируется (см. изображение ниже), но на самом деле эти две записи находятся в каждом раскрывающемся списке.

https://imgur.com/YlVZHWx
https://imgur.com/FXYO4Tn

VIEW

//for loop to count records that will determine how many dropdown list to be displayed
@for (var i = 0; i < Model.SavedEventsToList.Where(a => a.incidentReportId == Model.IRId).Count(); i++)
 {
    <tr>
       <td style="border-bottom:none !important;border-top:none !important;">
          <div class="input-group">  
              <select class="form-control pseEventDDLInEdit" id="pseEventListInEdit" name="pseAddedEvent">
                @{
                   foreach (var item in Model.SavedEventsToList)
                   {
                      if (item.selected == "yes")
                      {
                         if (item.incidentReportId == Model.IRId)   //this is the foreign key that determine these two records are as one
                         {
                            <option value=@item.pseEventsId selected>@item.pseEventsName</option>
                         }
                       }
                       else
                       {
                         <option value=@item.pseEventsId>@item.pseEventsName</option>
                       }                                                        
                    }
                  }
                </select>
            </div>
         </td>
     </tr>
  }

CONTROLLER

public ActionResult Edit(Guid? id)
{
  IMRBusinessLogic imrLogic = new IMRBusinessLogic();
  var imrRepo = new IMRRepository();
  IMRDTO imr = imrRepo.GetIRDetailsForEdit(id);
  imr.SavedEventsToList = imrLogic.SavedEvents(id);

   return View(imr);
}


public List<PSESavedEventsDTO> SavedEvents(Guid? incidentReportId)
{
  using (IREntities db = new IREntities())
  {
     var events = (from a in db.SavedPatientSafetyEvents(incidentReportId)
                select new PSESavedEventsDTO
                {
                  pseSavedEventId = a.pse_saved_event_category_and_subcategory_id,
                  pseEventsId = a.pse_events_id,
                  pseEventsName = a.pse_events_name,
                  seqNum = a.seq_num,
                  incidentReportId = a.incident_report_id,
                  savedRowIndex = a.saved_row_index,
                  selected = a.selected
                }).ToList();
       return events;
      }
}

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

Это ожидаемый результат, который мне нужен: https://imgur.com/uwVjvkz

Может кто-нибудь помочь мне с этим. Заранее спасибо.

1 Ответ

0 голосов
/ 30 мая 2019

Я уже нашел решение в этом.Я просто использую foreach вместо for, и получаю желаемый результат, который мне нужен.

@foreach (var index in Model.SavedEventsToList.Where(a => a.savedRowIndex != 0))
{
<tr>
  <td style="border-bottom:none !important;border-top:none !important;">
     <div class="input-group">
        <select class="form-control pseEventDDLInEdit" id="pseEventListInEdit" name="pseAddedEvent">
        @{
           foreach (var item in Model.SavedEventsToList)
           {
              if (item.selected == "yes")
              {
                 if (item.incidentReportId == Model.IRId && item.savedRowIndex == index.savedRowIndex)
                 {
                    <option value=@item.pseEventsId selected>@item.pseEventsName</option>
                 }
              }
              else
              {
                 <option value=@item.pseEventsId>@item.pseEventsName</option>
              }
           }
         }
        </select>
        <span title="Patient Safety Events Description" class="input-group-addon" data-toggle="popover" data-container="body" data-placement="right" data-trigger="hover" data-html="true" href="#" id="login"><i class="fa fa-info-circle"></i></span>
     </div>
  </td>
</tr>
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...