2017-04-18 135 views
1

我需要將page_load上的地理位置(lat,long)存儲到db表中。在asp.net代碼隱藏中訪問javascript變量

我使用這個腳本。

<body onload="getLocation()"> 

    <p>Click the button to get your coordinates.</p> 

      <%--<button onclick="getLocation()">Try It</button>--%> 

      <p id="demo"></p> 


    <form id="form1" runat="server"> 
     <div> 

      <p> 
       <asp:HiddenField ID="hdnLocation" ClientIDMode="Static" runat="server" /> 
<asp:Label ID="lblloc" runat="server"></asp:Label> 
       <asp:TextBox ID="txtloc" runat="server"></asp:TextBox> 
       <asp:Button ID="btnLoc" text="submit" runat="server" OnClick="btnLoc_Click" /> 

      </p> 
     </div> 
    </form> 

     <script> 
      var x = document.getElementById("demo"); 

      function getLocation() { 
       if (navigator.geolocation) { 
        navigator.geolocation.getCurrentPosition(showPosition); 
       } else { 
        x.innerHTML = "Geolocation is not supported by this browser."; 
       } 
      } 

      function showPosition(position) { 
       x.innerHTML = "Latitude: " + position.coords.latitude + 
       "<br>Longitude: " + position.coords.longitude; 
       $("[id*=hdnLocation]").val(position.coords.latitude + ' ' + position.coords.longitude); 
      // $("[id*=btnLoc]").trigger("click"); 
      } 
      </script> 

</body> 
</html> 

這裏是背後 公共部分類的getLocation我的代碼:System.Web.UI.Page

{ 保護無效的Page_Load(對象發件人,EventArgs的){

lblloc.Visible = true; 

    lblloc.Text = hdnLocation.Value; 
    txtloc.Text = hdnLocation.Value; 

} 

當我運行該頁面時,當我在瀏覽器中檢查時,我在隱藏字段中獲取值。

enter image description here

但在代碼無法訪問的隱藏字段值後面。 Response.Write爲空,lblloc.text爲空。

可能是什麼問題。

回答

0

您需要在代碼後面使用此代碼。

HTML 
<asp:HiddenField ID="hdnLocation" runat="server" /> 


CODE BEHIND  
var value = this.hdnLocation.Value; 

例子是Here

+0

這並不工作 –

0

爲了你當前的jQuery選擇工作,你的HTML元素需要有ClientIDMode屬性設置爲「靜態」。

在.NET中的服務器元素中,服務器ID和客戶端ID是兩個完全不同的東西。這確保它們對於這個元素是相同的。

<asp:HiddenField ID="hdnLocation" runat="server" ClientIDMode="Static" /> 
+0

這並沒有幫助。我已經更新了這個問題。 –

0

這應該工作:

HTML

<script type="text/javascript"> 
function abc() 
{ 
    var str="value"; 
    document.getElementById("Hidden1").value=str; 
} 


</script> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <input id="Hidden1" type="hidden" runat="server" /> 
     <asp:Button ID="Button1" runat="server" OnClientClick="abc()" Text="Button" 
      onclick="Button1_Click" /> 
    </div> 
    </form> 
</body> 

代碼背後

Response.Write(Hidden1.Value); 
+0

document.getElementById(「Hidden1」)。value = str; 。價值未被識別 即使它不顯示在intellisense中。相反,.nodevalue和.valueof來了。 –

相關問題