asp:使用JQuery触发HyperLink触发器

时间:2013-06-18 11:08:34

标签: jquery asp.net hyperlink click

我正在使用转发器动态填充表格,并且我希望在行上点击时触发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。

感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

您可以使用以下方式执行此操作:

$('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');
});

答案 1 :(得分:1)

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

window.addEventListener(&#34; beforeunload&#34;,function(event){   event.preventDefault(); //或显示进度条......

});

答案 2 :(得分: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");
        });
});