スクリプトを使用してポストバックを発生させています。コンテキストは次のとおりです。
- ユーザーがリンクをクリックして、現在の場所を知る必要がある機能を実行する
- スクリプトはブラウザーから現在の位置を取得します (navigator.geolocation.getCurrentPosition を使用)
- 場所がある場合(上記の呼び出しは非同期です-ユーザーが場所を共有することに同意するまで待つ必要があります)、スクリプトで場所をサーバーに投稿する必要があります。これは、非表示のリンク ボタンからのポストバックをシミュレートすることで行います。
関連するコードは次のとおりです。
function submitLocation_Inline(position) {
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
document.getElementById("ctr11837_Locator_hLat").value = latitude;
document.getElementById("ctr11837_Locator_hLng").value = longitude;
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm._doPostBack('ctr11837_Locator_btnSubmitLocation', 'inline');
}
<a href="javascript:__doPostBack('ctr11837$Locator$btnSubmitLocation','')" id="ctr11837_Locator_btnSubmitLocation"></a>
コード ビハインドには、非表示のリンク ボタン (btnSubmitLocation_Click) のクリック イベントのハンドラーがあります。ただし、これは呼び出されません。ポストバックは問題なく発生しますが、それを処理するには、Page_Load 中に Request["_ EVENTTARGET"] と Request[" _EVENTARGUMENT"] を調べて、必要なポストバックであることを確認する必要があります。
btnSubmitLocation_Click が呼び出されるようにコードを調整するにはどうすればよいですか?
PS - これが関連しているかどうかはわかりません: 非表示のリンクボタンは UpdatePanel 内にあります。