RadComboBox, ClientDataSource и WebMethod - PullRequest
0 голосов
/ 03 июня 2019

У меня самая простая конфигурация, с 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

В консоли не отображаются ошибки.

Когда я устанавливаю точку останова в веб-методе - она ​​запускается правильно, и аргументы передаются.В Fiddler я вижу правильные данные, отформатированные в JSON, возвращенные в браузер.Метод "Parse" никогда не запускается.

Что я делаю не так?

...