1
  function calcRoute() {
        var start = document.getElementById('start').value;
        var end = document.getElementById('end').value;


        var request = {
            origin: start,
            destination: end,

            travelMode: google.maps.TravelMode.DRIVING
        };
        directionsService.route(request, function(response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                directionsDisplay.setDirections(response);
                var route = response.routes[0];
                var summaryPanel = document.getElementById('directions_panel');
                summaryPanel.innerHTML = '';
                // For each route, display summary information.
                for (var i = 0; i < route.legs.length; i++) {
                    var routeSegment = i + 1;
                    summaryPanel.innerHTML += '<b>Route Segment: ' + routeSegment + '</b><br>';
                    summaryPanel.innerHTML += route.legs[i].start_address + ' to ';
                    summaryPanel.innerHTML += route.legs[i].end_address + '<br>';
                    summaryPanel.innerHTML += route.legs[i].distance.text + '<br><br>';
                }
            }
        });
    }

    google.maps.event.addDomListener(window, 'load', initialize);

我的按钮事件未触发...我想使用服务器端控件的两个下拉列表控件显示获取方向,但我的按钮事件未触发...我要做什么?

 <asp:Button ID="btnsubmit" runat="server" OnClientClick="return calcRoute();" Text="Submit" />

如何将javascript方法调用到服务器端...请告诉我..

4

3 回答 3

0

我没有添加“返回”错误条件...我的 Button 现在正在收到 PostBack,这可能是个问题。所以添加

返回假;

健康)状况..

然后它会工作正常...感谢您的回复..

于 2013-10-01T09:19:31.997 回答
0

为什么你首先有一个服务器端按钮?

该按钮不调用提交事件,也不回发到服务器。那么为什么不简单地使用一个普通的 html 按钮呢?

甚至您的 Javascript 函数也不会返回 true 或 false,因此 usingreturn calcRoute()将始终返回 false 事件。

在任何情况下,尝试使用普通的 onClick 事件而不是 OnClientClick。

编辑

在我看来,您在这里所做的很多事情都可以使用 jQuery 以比您在这里尝试做的更好的方式解决。

于 2013-10-01T05:46:36.137 回答
0
Syntax : 
public void RegisterClientScriptBlock(
    Type type,
    string key,
    string script,
    bool addScriptTags
)

Parameters

type
    Type: System.Type

    The type of the client script to register. 

key
    Type: System.String

    The key of the client script to register. 

script
    Type: System.String

    The client script literal to register. 

addScriptTags
    Type: System.Boolean

    A Boolean value indicating whether to add script tags.

  public void Page_Load(Object sender, EventArgs e)
  {
    // Define the name and type of the client scripts on the page.
    String csname1 = "PopupScript";
    String csname2 = "ButtonClickScript";
    Type cstype = this.GetType();

    // Get a ClientScriptManager reference from the Page class.
    ClientScriptManager cs = Page.ClientScript;

    // Check to see if the startup script is already registered.
    if (!cs.IsStartupScriptRegistered(cstype, csname1))
    {
      String cstext1 = "alert('Hello World');";
      cs.RegisterStartupScript(cstype, csname1, cstext1, true);
    }

    // Check to see if the client script is already registered.
    if (!cs.IsClientScriptBlockRegistered(cstype, csname2))
    {
      StringBuilder cstext2 = new StringBuilder();
      cstext2.Append("<script type=\"text/javascript\"> function DoClick() {");
      cstext2.Append("Form1.Message.value='Text from client script.'} </");
      cstext2.Append("script>");
      cs.RegisterClientScriptBlock(cstype, csname2, cstext2.ToString(), false);
    }
  }
于 2013-10-01T06:02:23.190 回答