【发布时间】:2012-12-01 22:47:34
【问题描述】:
我正在使用一些脚本来导致回发。这是上下文:
- 用户单击链接以执行需要知道其当前位置的功能
- 脚本从浏览器获取当前位置(使用 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 内。
【问题讨论】:
-
检查
__EventTarget隐藏字段并手动触发点击处理程序是唯一的方法。
标签: javascript asp.net postback pagerequestmanager