JavaScript:调用函数后面的C#代码

时间:2014-04-28 08:53:32

标签: c# javascript asp.net

您好我想知道是否可以在我的Javascript中调用codebehind函数? javascript位于我的asp.net网页页面的头部。

我尝试了很多方法,但似乎都没有。它是第一次iv必须这样做,所以一个例子将是一个很好的学习曲线修复。

我在C#中的代码隐藏功能

protected void GetAverageRent_TextChanged(object sender, EventArgs e)
{
    string Postcode = _postCodeInput.Value.ToString();
    var webGet = new HtmlWeb();
    var doc = webGet.Load("http://www.webadress.com/" + Postcode);


    HtmlNode AvgPrice = doc.DocumentNode.SelectSingleNode("//div[@class='split2r right']//strong[@class='price big']");

    if (AvgPrice != null)
    {
        AverageRentLbl.Text = AvgPrice.InnerHtml.ToString();
    }
    else
    {
        AverageRentLbl.Text = "Invalid Postcode!";
        AverageRentLbl.ForeColor = Color.Red;
        AverageRentLbl.Font.Bold = true;
    }
}

我的Javascript

<script>
function codeAddress() {

        document.getElementById('map-canvas').setAttribute("style", "height:200px");

        geocoder = new google.maps.Geocoder();
        var latlng = new google.maps.LatLng(-34.397, 150.644);
        var mapOptions = {
            zoom: 16,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);

        //var address = document.getElementById('_mainContentHolder__postCodeValue').value;
        var address = document.getElementById('ContentPlaceHolder1__postCodeInput').value;

        geocoder.geocode({ 'address': address }, function (results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    map: map,
                    position: results[0].geometry.location
                });

                document.getElementById('ContentPlaceHolder1__latValue').value = results[0].geometry.location.lat();
                document.getElementById('ContentPlaceHolder1__longValue').value = results[0].geometry.location.lng();
            } else {
                alert('Sorry the postcode you entered in invalid. Please try again: ' + status);
                document.getElementById('ContentPlaceHolder1__postCodeInput').value = "";
            }
        });</Script>

2 个答案:

答案 0 :(得分:0)

W3Schools有一个关于Ajax的完整教程(http://www.w3schools.com/ajax/default.asp)。 AJAX是异步的javascript和XML,所以它非常明显的javascript可以实现它。如果你只想让你的文本更改事件异步启动,那么我建议你使用更新面板,这将为你节省很多麻烦。

答案 1 :(得分:0)

您可以使用webservice,如下所示..

代码

 [WebMethod]
    public static string abc()
    {
        //function body
    }

在javascript ..

 PageMethods.abc(onSucess2, onError2);

        function onSucess2(result) {

        }
        function onError2(result) {
            alert('Error!!!');
        }

您必须在页面中放置 scriptmanager 并设置 enabalepagemethods = true