2016-06-13 2 views
-1

Как получить выбранное значение выброса от базы данных? Я храню данные о сотрудниках в одной таблице с выпадающим выбранным значением (целое число) и в другой таблице выпадающее значение и текст.добавление выпадающего списка с выбранным значением из базы данных

мои модели

public class EmployeeDetails 
{ 
    public int empid {set;get;} 
    public string empname{set;get;} 
    public string empdesig{set;get;} 
    public decimal empsal{set;get;} 
    public int education{set;get;} 
    public DateTime time{set;get;} 
    public string dropdownname { set; get; } 
} 

public class DropDownList 
{ 
    public int dropdownId { set; get; } 
    public string dropdownName { set; get; } 
} 

public class DisplayEmployeeViewModel 
{ 
    public IEnumerable<EmployeeDetails> EmployeeDetails { set; get; } 
    public DisplayCreateEmployeeViewModel createemployee { set; get; } 
    public string TabName { set; get; } 
    public List<SelectListItem> DropdownSelectListItems 
    { 
     get 
     { 
      var dropdown = (new DropdownRepository()).GetDropdownTypes(); 
      var entityList = dropdown.Select(x => new SelectListItem() 
      { 
       Text = x.dropdownName, 
       Value = x.dropdownId.ToString() 
      }); 
      return entityList.ToList(); 
     } 
    } 
} 

public class DisplayCreateEmployeeViewModel 
{ 
    public EmployeeDetails EmployeeDetails { set; get; } 
    public int empid { set; get; } 
    public string empname { set; get; } 
    public string empdesig { set; get; } 
    public decimal empsal { set; get; } 
    public int education { set; get; } 
    public DateTime time { set; get; } 
    public string dropdownname { set; get; } 
    public List<SelectListItem> DropdownSelectListItems 
    { 
     get 
     { 
      var dropdown = (new DropdownRepository()).GetDropdownTypes(); 
      var entityList = dropdown.Select(x => new SelectListItem() 
      { 
       Text = x.dropdownName, 
       Value = x.dropdownId.ToString() 
      }); 
      return entityList.ToList(); 
     } 
    } 
} 

Просмотр

<div> 
    <table id="tblemployeedetails" class="table table-hover table-bordered table-responsive " > 
     <thead style="background-color:black;color:white; "> 
      <tr> 
       <th></th> 
       <th>Employee Name</th> 
       <th>Employee Designation</th> 
       <th>Enployee Education</th> 
       <th>Employee Salary</th> 
      </tr> 
     </thead> 
     <tbody> 
      @foreach (EmployeeDetails details in Model.EmployeeDetails) 
      { 
       <tr> 
        <td>@Html.CheckBox("status" + details.empid, new {value=details.empid,@class="detailCheckBox" })</td> 
        <td>@Html.TextBox(details.empname, details.empname, new {@class="txtdisable" })</td> 
        <td>@Html.TextBox(details.empdesig, details.empdesig, new { @class = "txtdisable" })</td> 
        <td>@Html.DropDownList(details.education.ToString(),Model.DropdownSelectListItems, new { @class = "txtdisable" })</td> 
        <td>@Html.TextBox(details.empsal.ToString(), details.empsal, new { @class = "txtdisable" })</td> 
       </tr> 
      } 
     </tbody>   
    </table> 
</div> 

Код, который я показываю выборку выпадающий полный список и показ. Здесь я получаю список выпадающего списка. Но я хочу, чтобы получить список с выбранным текстом (сохраненное значение следует выбрать)

, как сделать что

+0

Сначала обратитесь [этот ответ] (http://stackoverflow.com/questions/30094047/html-table-to-ado-net-datatable/30094943#30094943) - вы не можете использовать цикл foreach для привязки к Коллекция. Затем, как только вы исправили это, обратитесь [этот ответ] (http://stackoverflow.com/questions/37407811/mvc5-razor-html-dropdownlistfor-set-selected-when-value-is-in-array/37411482#37411482) –

ответ

0

Когда вы выбираете в SelectListItem, просто добавьте:

Selected = x.dropdownName == dropdownname 

Однако, что на самом деле не требуется, если в ModelState есть значение, к которому может привязываться список выбора. Я точно не знаю, что вы делаете в своем представлении, но первый параметр, равный Html.DropDownList, должен соответствовать свойству на вашей модели, поскольку это необходимо для привязки к этому свойству в сообщении. Если это соответствует свойству, то Razor будет использовать значение этого свойства для автоматического выбора соответствующего выбранного значения в списке выбора. Для чего это стоит, это намного проще при использовании *For семейства хелперов:

@Html.DropDownListFor(m => m.SomeProperty, Model.SomePropertyChoices) 

Таким образом, вы знаете, по выражению, что вы связывание с чем-то реальным, а не просто надеясь ваше имя строки правильно и будет связываться.