0

私は私のjavascriptにこのコードを持っています:

         function getListOfPOI() {
            geocoder = new google.maps.Geocoder();
            var address = document.getElementById('tbCity').value;

            geocoder.geocode({ 'address': address }, function (results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    map.setCenter(results[0].geometry.location);
                    var request = {
                        location: results[0].geometry.location,
                        radius: 8000,
                        types: all //['store']
                    };
                    infowindow = new google.maps.InfoWindow();
                    var service = new google.maps.places.PlacesService(map);
                    service.nearbySearch(request, callback);
                } else {
                    alert('Geocode was not successful for the following reason: ' + status);
                }
            });

            return true;
        }

そして、以下のボタンでこの関数を呼び出します。

<asp:Button ID="btnAddCity" Height="20px" Text="Add" runat="server" OnClientClick="return getListOfPOI();" OnClick="btnAddCity_Click" UseSubmitBehavior="false"    />

OnClientClick は完全に機能しますが、OnClick 関数は起動されません。私は何をすべきか?あなたの洞察を前もってありがとう。

乾杯、ニサ

4

2 に答える 2

1

JavaScript コード + サーバー コードを実行するもう 1 つの方法は、ClientScript.RegisterStartupScript を利用して JavaScript 関数を呼び出す次の方法です。

.ASPX ページで:

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script>
        function clientTestClick() {
            document.write("Test!");
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Button ID="TestButton" Text="Test Me" UseSubmitBehavior="false" OnClick="TestButton_Click" runat="server"/>
    </div>
    </form>
</body>
</html>

コードビハインド言語に応じて..

C#:

protected void TestButton_Click(object sender, EventArgs e)
{
    ClientScript.RegisterStartupScript(Page.GetType, "JavaScript", "clientTestClick();", true);

    /*  PUT YOUR SERVER CODE HERE */
}

VB.NET:

Protected Sub TestButton_Click(sender As Object, e As EventArgs) Handles TestButton.Click

    ClientScript.RegisterStartupScript(Me.GetType(), "JavaScript", "clientTestClick()",True)

    Dim x As String 
    x="hello" 'You can set a debug-point here and see that this will fire

End Sub

これが役立つことを願って、私に知らせてください!

于 2014-03-16T22:28:16.593 に答える
0

@lucidgold の助けを借りて、ついに機能するようになりました。解決策は、ボタン サーバー側で JavaScript 関数を呼び出すことです。微調整した後、ここに完全な解決策があります:

  1. JavaScript 関数の return true を削除しました
  2. ボタンの useSubmitBehaviour プロパティを削除します。
    <asp:Button ID="TestButton" Text="Test Me" OnClick="TestButton_Click" runat="server"/>

  3. C# で RegisterStartupScript を次のように実行します。
    ClientScript.RegisterStartupScript(GetType(), "script", "<script type ='text/javascript'> getListOfPOI(); </script>");

于 2014-03-17T06:39:46.267 に答える