2017-04-18 16 views
1

page_loadのときにgeolocation(lat、long)をdbテーブルに格納する必要があります。asp.net codebehindのjavascript変数にアクセス

私はこのスクリプトを使用します。 System.Web.UI.Page

{ 保護のボイドをPage_Load(オブジェクト送信者、EventArgsの電子) {

lblloc.Visible = true; 

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

} 

:ここ

<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の背後に私のコードです私がページを実行するとき、私はブラウザで検査するときに私は隠されたフィールドの値を取得します。

enter image description here

しかし、背後にあるコードに隠されたフィールドの値にアクセスすることはできません。 Response.Writeは空白になり、lblloc.textはnullになります。

何か問題があります。

答えて

0

コードの背後にあるidの前にこれを使用する必要があります。

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


CODE BEHIND  
var value = this.hdnLocation.Value; 

例は、あなたの現在のjQueryのセレクタが動作するためにはHere

+0

この背後にこれで問題が解決しない –

0

で、あなたのHTML要素は、「静的」に設定ClientIDModeプロパティを持っている必要があります。

.NETのサーバー要素では、サーバーIDとクライアントIDは2つの非常に異なるものです。これにより、これらの要素が同じであることが保証されます。

<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が来ます。 –

関連する問題