asp:使用JQuery触发HyperLink触发器

问题描述 投票:1回答:3

我正在使用转发器动态填充表格,我想在行上点击时触发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。我试图看看选择器'$(lnkBut​​tonID)'是否正常工作 - 是的,似乎我正在获取超链接,但由于某种原因我无法重定向到超链接的NavigateUrl。

任何帮助表示赞赏。

jquery asp.net hyperlink click
3个回答
1
投票

你可以简单地使用:

$('table').on('click', 'tr', function () {
    $(this).find('a[id*="lnkDocPage_"]').trigger('click');
});

表达式id*="lnkDocPage_"匹配具有包含idlnkDocPage_的元素,并在单击嵌套的表行时触发其上的单击事件。

如果你在每个tr元素中只有一个锚标记:

$('table').on('click', 'tr', function () {
    $(this).find('a').trigger('click');
});

1
投票

只需使用事件beforeunload,因为导航到不同的页面所有功能都被禁用。

window.addEventListener(“beforeunload”,function(event){event.preventDefault(); //或显示进度条...

});


0
投票
<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");
        });
});
© www.soinside.com 2019 - 2024. All rights reserved.