jtable(.org) заполнить выпадающий список с помощью веб-метода
У меня есть приложение веб-форм ASP.NET, использующее плагин jquery jtable.org, и в основном оно работает нормально.
Единственная проблема, с которой я сталкиваюсь, это когда я пытаюсь предоставить опции для выпадающего списка с помощью метода List-Web:
Код ASP.NET (JTable)
$img.click(function () {
$('#TestList').jtable('openChildTable',
$img.closest('tr'),
{
title: '',
actions: {
listAction: 'Test.aspx/ListeAuftrag?FahrzeugID=' + fahrzeugData.record.FahrzeugID,
deleteAction: 'Test.aspx/DeleteAuftrag',
updateAction: 'Test.aspx/UpdateAuftrag',
createAction: 'Test.aspx/CreateAuftrag'
},
fields: {
Titel: {
title: 'Titel'
},
FahrzeugID: {
type: 'hidden',
defaultValue: fahrzeugData.record.FahrzeugID
},
MitarbeiterID: {
title: 'Mitarbeiter',
defaultValue: '0',
options: 'Fahrzeugliste.aspx/ListeMitarbeiter'
},
Start: {
title: 'Start',
type: 'date'
},
Ende: {
title: 'Ende',
type: 'date'
},
Bemerkung: {
title: 'Bemerkung',
type: 'textarea'
}
}
}, function (data) { //opened handler
data.childTable.jtable('load');
});
});
//Return image to show on the person row
return $img;
}
},
KundeID: {
title: 'Kunde',
defaultValue: '0',
options: 'Test.aspx/ListeKunde'
} }
}
});
$('#FahrzeugListe').jtable('load');
});
Код-код для Test.aspx/ListeKunde
[WebMethod(EnableSession = true)]
public static object ListeKunde()
{
try
{
Dictionary<string, string> kunden = new Dictionary<string,string>();
foreach (Kunde kunde in db.Kunde)
{
kunden.Add("'" + kunde.KundeID.ToString() + "'", "'" + kunde.Nachname + ", " + kunde.Vorname + "'");
}
return new { Result = "OK", Options = kunden };
}
catch (Exception ex)
{
return new { Result = "ERROR", Message = ex.Message };
}
}
Проблема в том, что выпадающий список остается пустым. На мой взгляд, проппер JSON-Data передается:
{Result:OK, Options:{'3':'Kunde, Dummy', '5':'asdf, assssss', '6':'asdf, asdf'}
Кто-нибудь может увидеть, где проблема?
1 ответ
Это то, что я делаю, чтобы получить список информации. Не сказать, что это лучший или единственный, но мой путь.
public JsonResult NumberDropList(int start, int duration)
{
try
{
Dictionary<int, int> number = new Dictionary<int, int>();
for (int i = start; i < duration; i++)
{
number.Add(i, i);
}
var numbers = number.Select(c => new { DisplayText = c.Key, Value = c.Value }).OrderBy(c => c.DisplayText).ToList();
return Json(new { Result = "OK", Options = numbers });
}
catch (Exception ex)
{
return Json(new { Result = "ERROR", Message = ex.Message });
}
}