2014-09-15 2 views
2

я написал следующий код и он получает идеальное значение lbllat и lbllon:получать нулевые значения из звукозаписывающей компании в функции яваскрипта

<asp:UpdatePanel ID="updatepanel_vehicleinfo" runat="server" OnLoad="updatepanel_vehicleinfo_Load"> 
       <ContentTemplate> 
        <asp:Repeater ID="vehicle_info" runat="server"> 
         <ItemTemplate> 

      <asp:Label ID="lbllat" runat="server" Text='<%#Eval("lat") %>'></asp:Label><br /> 

      <asp:Label ID="lbllon" runat="server" Text='<%#Eval("lon") %>'></asp:Label><br /> 
    </ItemTemplate> 
        </asp:Repeater> 
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
        <script type="text/javascript"> 
         function initialize() { 
          var lat = document.getElementById('<%=lbllat.ClientID %>').value; 
          var lon = document.getElementById('<%=lbllon.ClientID %>').value; 
          var myLatlng = new google.maps.LatLng(lat, lon) 
          var mapOptions = { 
           center: myLatlng, 
           zoom: 6, 
           mapTypeId: google.maps.MapTypeId.ROADMAP, 
           marker: true 
          }; 
          var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions); 
          var marker = new google.maps.Marker({ 
           position: myLatlng 
          }); 
          marker.setMap(map); 
         } 
        </script> 
       </ContentTemplate> 


      </asp:UpdatePanel> 

<br /> 

     <div id="map_canvas" style="width: 500px; height: 500px"> 
     </div> 

теперь, когда я называю яваскрипт функции из коды, как показано ниже:

DataSet dsvehicle_info = new DataSet(); 
     dsvehicle_info = cls.ReturnDataSet("RetriveData_Alias1", 
      new SqlParameter("@Field", "lat,lon"), 
      new SqlParameter("@TblNm", "current_gps_data left join device_master on device_master.id=current_gps_data.id"), 
     new SqlParameter("@WhereClause", "where current_gps_data .id=24")); 


     vehicle_info.DataSource = dsvehicle_info; 
     vehicle_info.DataBind(); 
     ScriptManager.RegisterStartupScript(this, this.GetType(), "Javascript", "javascript:initialize();", true); 

это дает прекрасный ответ лат и много, и это также печатается прямо в ретрансляторе, но когда я звоню JavaScript того lat and lon значения, установленное в нуль

, так как я могу получить правильное значение lat и lon в javascript?

ответ

2
</ContentTemplate> 

Lat: <asp:Label ID="lat" runat="server"></asp:Label><br /> 
    Lon: <asp:Label ID="lon" runat="server"></asp:Label><br /> 
</asp:UpdatePanel> 

поставить эту этикетку до и после

Теперь добавьте следующий код в вас CS файл: поместить следующий код после

vehicle_info.DataSource = dsvehicle_info; 
    vehicle_info.DataBind(); 

добавить код Белы:

lat.Text = dsvehicle_info.Tables[0].Rows[0]["lat"].ToString(); 
    lon.Text = dsvehicle_info.Tables[0].Rows[0]["lon"].ToString(); 

сейчас в javascript изменить следующие две строки кода:

var lat = document.getElementById('<%=lat.ClientID %>').innerHTML; 
    var lon = document.getElementById('<%=lon.ClientID %>').innerHTML; 

Теперь это делается .. !! Наслаждаться!!

+0

да .. это работа .. очень благодарен ... :-) – deepak

0

Похоже, вы повторяете значения идентификатора в своем ретрансляторе. Вы пробовали присваивать имя класса каждой метке и затем вместо этого хранить ее в HTML-коллекции?

Нечто подобное для управления ярлыком:

<asp:Label CssClass="lbllat" runat="server" Text='<%#Eval("lat") %>'></asp:Label><br /><asp:Label CssClass="lbllon" runat="server" Text='<%#Eval("lon") %>'></asp:Label><br /> 

Тогда в ваших JS:

var lblats = document.getElementsByClassName('lbllat'); 
var lbllons = document.getElementsByClassName('lbllat'); 

В lblats и lbllons HTML коллекция должна затем быть доступна для вас итерации или доступа через их индексы ,

+0

нет не работает – deepak

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