我使用RadComboBox,RadClientDataSource和WebMethod进行了最简单的配置。下面是代码:
<telerik:RadComboBox runat="server" EnableLoadOnDemand="true" Width="300"
DropDownWidth="350" ClientDataSourceID="DriverDS" DataTextField="LastName"
DataValueField="Id" ShowMoreResultsBox="true" />
<script type="text/javascript">
function MapDriverParams(sender, args) {
args.set_parameterFormat("{'forwarder': '1', 'filter':'abc'}");
}
function Parse(sender, args) {
debugger;
}
</script>
<telerik:RadClientDataSource runat="server" ID="DriverDS">
<ClientEvents OnCustomParameter="MapDriverParams" OnDataParse="Parse" />
<DataSource>
<WebServiceDataSourceSettings BaseUrl="WebForm1.aspx/" ServiceType="OData" >
<Select Url="GetDrivers" DataType="JSON" RequestType="Post" ContentType="application/json; charset=utf-8" />
</WebServiceDataSourceSettings>
</DataSource>
<Schema DataName="d" ResponseType="JSON" />
</telerik:RadClientDataSource>
而且,在Code-Behind中:
[WebMethod(EnableSession = true)]
public static DriverTest[] GetDrivers(long forwarder, string filter)
{
return new DriverTest[] { new DriverTest() { Id = 1, LastName = "Kowalski" }, new DriverTest() { Id = 2, LastName = "Nowak" } };
}
[Serializable]
public class DriverTest
{
public long Id { get; set; }
public string LastName { get; set; }
}
现在-当我打开RadCombo时,什么也没发生: https://snag.gy/HBEaPL.jpg
控制台中没有显示错误。
当我在web方法中设置断点时-正确触发了断点,并传递了参数。在Fiddler中,我可以看到以JSON格式格式化的正确数据返回到浏览器。永远不会触发“解析”方法。
我在做什么错了?