2017-04-10 2 views
0

Ich versuche, eine Dropdown-Farbe basierend auf einem Modell in MVC festzulegen.Festlegen der Farbe in MVC DropDownListFor

public class Viewer 
{ 
    public List<SLI> ls { get; set; } 

    public string SelectedReport { get; set; } 
    //public IEnumerable<SelectListItem> MyReports { get; set; } 
    public string PDFLoc { get; set; } 
    public List<Status> Stat { get; set; } 

} 

public class SLI : SelectListItem 
{ 
    public string Color { get; set; } 

} 

Ich kann die "Farbe" festlegen und an die Ansicht übergeben. aber ich weiß nicht, wie man eine neue DropDownListFor zu schaffen, die den Stil Farbe hat: rot

ich verschiedene Dinge wie versucht:

@Html.DropDownListFor(m => m.SelectedReport, new SelectList(Model.ls, "Value", "Text"), new {style = "color: "+ m=>m.ls.Color +"}); 

und in der Steuerung:

public ActionResult Viewer() 
    { 
     ViewBag.Message = "Your application description page."; 

     if (S.UserAuthorized()) 
     { 
      Data D = new Data(); 


      Viewer V= new Viewer(); 
      V.ls = D.GetReportsAssignedToUser(); 
      V.PDFLoc = ""; 
      V.SelectedReport = ""; 
      //Get status of reports 
      V.Stat = D.GetReportStatuses(V.ls); 


      return View(V); 
     } 
     return RedirectToAction("Index"); 
    } 

ich wirklich nicht, hol dir die anonymen Methoden. . .

Antwort

0

Ändern Sie bitte Ihre Klasse wie -

public class Viewer 
{ 
    public List<SLI> ls { get; set; } 

    public string SelectedReport { get; set; } 
    public string PDFLoc { get; set; } 
    public List<Status> Stat { get; set; } 
    public string DropdownColor { get; set; } 
} 

Sie können JQuery verwenden wie -

$("#SelectedReport option").css("color","@Model.DropdownColor"); 
  • Wo #SelectedReport ist die ID des Dropdown.

this helps :)

0

Sie Modell wie dieses

public class DDwithColor 
    { 

     public List<SelectListItem> SLI { get; set; } 
     public string Color { get; set; } 
    } 

und Ihr Viewer Modell wird

public class Viewer 
    { 
     public DDwithColor ls { get; set; } 
     public string SelectedReport { get; set; } 
     public string PDFLoc { get; set; } 
     public List<Status> Stat { get; set; } 

    } 

und in Controller

var viewer = new Viewer(); 
var ddwithcolor = new DDwithColor(); 
ddwithcolor.Color = "red"; 
ddwithcolor.SLI= new List<SelectListItem>() { new SelectListItem() { Text = "test", Value = "1" } }; 
viewer.ls = ddwithcolor; 
zu schaffen haben

und schließlich in view

@Html.DropDownListFor(m => m.SelectedReport, new SelectList(Model.ls.SLI, "Value", "Text"), new{ @style=$"color:{Model.ls.Color}"}) 
+0

@SDanks lassen Sie mich wissen, ob es funktioniert – Usman

Verwandte Themen