2013-10-01 2 views
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); 

Событие с моей кнопкой не запускается ... Я хочу показать маршруты прохода, используя два элемента управления выпадающего списка, используя элементы управления на стороне сервера, но мое событие кнопки не срабатывает ... что я делаю?Как использовать метод javascript для управления на стороне сервера?

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

как кал метод яваскрипта в ServerSide ... скажите, пожалуйста ..

+0

есть вы пытаетесь отлаживать Javascript, например, устанавливая точку останова. и посмотреть, действительно ли функция вызвана? –

+0

это не называется, что funtion ... почему? – Sambasiva

+0

welll, у вас есть ошибки javascript на странице –

ответ

0

Почему у тебя есть кнопка на стороне сервера, в первую очередь?

Кнопка не вызывает событие отправки и не отправляет его обратно на сервер. Так почему бы просто не использовать обычную кнопку html?

Даже ваша функция Javascript не возвращает true или false, поэтому использование return calcRoute() всегда возвращает ложное событие.

В любом случае попробуйте использовать обычное событие onClick, а не OnClientClick.

редактировать

Кажется мне много того, что вы делаете здесь может быть решена с помощью JQuery в гораздо лучше, чем вы пытаетесь сделать здесь.

+0

Я уже пробовал html control..but no use ... Возможно, выпадающий список управления используется на стороне сервера .. поэтому я использую кнопку на стороне сервера ... не использовать ... – Sambasiva

+0

Вы пытались разместить предупреждение (9) как самую первую строку в вашей функции, чтобы увидеть, действительно ли вы туда попадаете? – griegs

+0

Если это не удается, удалите весь код в своей функции и повторите тест. может произойти ошибка в коде, чтобы он не выполнял – griegs

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); 
    } 
    } 
+0

почему я использую этот код ... – Sambasiva

0

Я не добавляю ложное условие "return" ... Моя кнопка получает PostBack прямо сейчас, это может быть проблемой. Поэтому добавьте

Return false;

состояние ..

Тогда он будет работать отлично ... спасибо за ответ ..

Смежные вопросы