我正在使用转发器动态填充表格,我想在行上点击时触发asp:HyperLink。
<td id="hyperLink">
<asp:HyperLink ID="lnkDocPage_<%# Eval("ID")%>" ClientIDMode="Static" NavigateUrl="~/Pages/DocumentListPage.aspx?id=<%# Eval("ID")%>" Text="" runat="server">link</asp:HyperLink>
</td>
这是带有超链接的td。
这是脚本,遗憾的是,它不会将用户重定向到DocumentListPage页面。
function bindRowClick() {
$('#productTable').find('tr').click(function () {
var id = $(this).find('th:first').text().replace(/\s+/g, " ");
id = ($.trim(id)).split(' ')[1];
var lnkButtonID = '#lnkDocPage_' + id;
alert($(lnkButtonID).attr('href'));
window.location = $(lnkButtonID).attr('href');
});
}
由于每个超链接都有一个唯一的ID,具体取决于行我首先计算id。我试图看看选择器'$(lnkButtonID)'是否正常工作 - 是的,似乎我正在获取超链接,但由于某种原因我无法重定向到超链接的NavigateUrl。
任何帮助表示赞赏。
你可以简单地使用:
$('table').on('click', 'tr', function () {
$(this).find('a[id*="lnkDocPage_"]').trigger('click');
});
表达式id*="lnkDocPage_"
匹配具有包含id
的lnkDocPage_
的元素,并在单击嵌套的表行时触发其上的单击事件。
如果你在每个tr
元素中只有一个锚标记:
$('table').on('click', 'tr', function () {
$(this).find('a').trigger('click');
});
只需使用事件beforeunload,因为导航到不同的页面所有功能都被禁用。
window.addEventListener(“beforeunload”,function(event){event.preventDefault(); //或显示进度条...
});
<td id="hyperLink">
<asp:HyperLink ID="lnkDocPage_<%# Eval("ID")%>" ClientIDMode="Static" NavigateUrl="~/Pages/DocumentListPage.aspx?id=<%# Eval("ID")%>" Text="" runat="server">link</asp:HyperLink>
</td>
以下是脚本
$(document).ready(function(){
$('#productTable').find('tr').click(function () {
$(this).find('a[id^="lnkDocPage_"]').trigger("click");
});
});