2016-08-03 11 views
0

Ich habe eine Frage bezüglich der Verwendung einer Dropdown-Liste in jqGrid. In meiner Umgebung bin ich mit Lizenz jqGrid 4.4.4 - jQuery Grid (Version 4.4.4) mit MVC 5.Dynamische Spalten und Verwendung der Dropdown-Liste in jqGrid

In meinem Code unten, ich ColNames und ColModel von meinem Controller dynamisch erstellen. Alles funktioniert, bis auf die Spalte Ich möchte die Werte für ein Dropdown anzeigen. Momentan ist die Dropdown-Liste leer. Warum ist es leer?

Wie sollten die Werte, z.B. {value:{'FE':'FedEx';'IN':'InTime';'TN':'TNT';'AR':'ARAMEX'}}, dynamisch von einer Methode in der Steuerung geladen werden?

model.CreateMeeting = false; 
SecondOpinionFacade = new SecondOpinionFacade(); 
var meeting = SecondOpinionFacade.GetMeeting(id); 
model.MeetingDay = meeting.StartDate.Date; 
model.MeetingdID = meeting.SecondOpinionMeetingId; 
model.FromTime = meeting.StartDate.ToString("HH:mm"); 
model.ToTime = meeting.EndDate.ToString("HH:mm"); 
model.NrofGroups = meeting.SecondOpinionGroup.Count; 

var list = new[] { new { name = "SecondOpionUserId", index = "SecondOpionUserId", sorttype = "string", sortable=false, hidden = true, editable = true, edittype = "", editoptions= "", formatter = ""} }.ToList(); 

Hier Ich versuche, Daten in der Dropdown-Liste zu setzen, aber es scheint nicht zu funktionieren, da die Drop-Down-leer angezeigt wird.

list.Add(new { name = "Deltagare", index = "Deltagare", sorttype = "string", sortable = true, hidden = false, editable = true, edittype = "select", editoptions = "{value:{'FE':'FedEx';'IN':'InTime';'TN':'TNT';'AR':'ARAMEX'}}", formatter = "select" }); 
int counter = 1; 
meeting.SecondOpinionGroup.OrderBy(x=> x.SecondOpinionGroupId).ForEach(x => 
{ 
    list.Add(new {name = x.SecondOpinionGroupId.ToString(), index = "Grupp" + counter, sorttype = "string", sortable = false, hidden = false, editable = true, edittype = "checkbox", editoptions = "{ value: 'True:False' }", formatter = "checkbox" }); 
    counter++; 
}); 

var list2 = new[] { "SecondOpionUserId" }.ToList(); 
list2.Add("Deltagare"); 
for (int i = 1; i <=model.NrofGroups; i++) 
{ 
    list2.Add("Grupp"+i); 
} 

model.ColNames = JsonConvert.SerializeObject(list2); 
model.ColModel = JsonConvert.SerializeObject(list); 
return View(model); 

Antwort

1

Sie verwenden String als Wert editoption. Es ist falsch. Der Wert editoptions sollte Objekt sein. Versuchen

editoptions = "{ value: 'True:False' }" 

und

editoptions = "{value:{'FE':'FedEx';'IN':'InTime';'TN':'TNT';'AR':'ARAMEX'}}" 

zu

editoptions = new { value = "True:False" } 

und

editoptions = new { value = "FE:FedEx;IN:InTime;TN:TNT;AR:ARAMEX" } 
+0

Danke zu ersetzen! Das löste das Problem, ein kleines Problem trat auf, als ich editoptions von einer Schnur zu einem Gegenstand änderte. Ich musste alle anderen editoptions in der Liste als Objekt einstellen, sonst bekomme ich einen Kompilierungsfehler. Aber ich setze sie einfach auf editoptions = new {value = ""} – user3197410

Verwandte Themen