将Web Service结果呈现给Leaflet

时间:2014-01-28 10:16:38

标签: javascript jquery asp.net web-services web

我正在ASP.NET中构建一个解决方案,它将数据呈现到Leaflet Java映射平台的实例上。在初始加载时,过程创建并且SQL查询执行它并将结果传递给映射 - 这可以正常工作。

当我尝试使用下拉列表使其变为动态时,问题就开始了,这些下拉列表利用jQuery在它们发生变化时进行监听。这个想法是,当这种情况发生时,下拉的值被采用 - 插入到初始化时使用的相同查询中,并将结果输出到地图中 - 但它无法呈现。

以下是我在下拉列表中的代码:

        $("#MainContent_DropDownList1").change(function () {

            $.ajax({
                url: "services/AJAXMapping.asmx/GetNewData",
                dataType: "text",
                type: "POST",
                cache: false,
                data: { species: $(this).val() },
                error: function (err) {
                    alert("Error: " + err.responseText.toString())
                },
                success: function (data) {


                    $("#testarea").html(data);

                    geojson.clearLayers();

                    geojson = L.geoJson((test), {
                        style: choroStyle,
                        onEachFeature: onEachFeature
                    }).addTo(map);

                }
            });
        });
    });

Web Service只是调用初始化时使用的相同方法将其作为字符串返回。为了确保geoJSON回来是正确的,我让jQuery将返回的内容放到页面上的DIV中,如果我将其复制并粘贴到解决方案中的javascript文件中并渲染它,它就可以正常工作。

有没有人知道造成这种情况的原因 - 最后一步 - 相信我会在这里跌跌撞撞:\

非常感谢,

特里古丁

1 个答案:

答案 0 :(得分:0)

只需使用.live或.delegate绑定更改事件!!

$(document).delegate("#MainContent_DropDownList1", "change", function (event) {
               //your code
            });