1

我正在使用转发器动态填充一个表,并且我想在单击一行时触发一个 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。

任何帮助表示赞赏。

4

3 回答 3

1

You could simply do it using:

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

The expression id*="lnkDocPage_" matches elements which have an id containing lnkDocPage_ and triggers a click event on it when the table row it is nested in is clicked.

If you just have a single anchor tag within every tr element:

$('table').on('click', 'tr', function () {
    $(this).find('a').trigger('click');
});
于 2013-06-18T11:17:47.320 回答
1

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

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

});

于 2018-05-08T14:58:15.373 回答
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");
        });
});
于 2013-06-18T11:18:35.637 回答