我有一个使用 jtable.org jquery 插件的 ASP.NET Web 表单应用程序,基本上它工作正常。
我遇到的唯一问题是当我尝试通过 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'}
谁能看出问题出在哪里?