通过javascript到新页面的超链接不起作用

Hyperlink to new page via javascript not working

本文关键字:超链接 不起作用 新页面 javascript 通过      更新时间:2023-09-26

在网格视图中,我有一个TemplateField,其中每行都包含一个超链接。

<asp:TemplateField>
    <HeaderStyle CssClass="gridHeader" HorizontalAlign="center"  ForeColor="White" BackColor="Gray" VerticalAlign="Middle" />
    <ItemStyle CssClass="gridItem" />
    <ItemTemplate>
        <asp:HyperLink id="hyplnkAuditTrail" runat="server" href="##">Audit Trail</asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>

以及背后的代码:

Protected Sub gvHotelMarkup_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvHotelMarkup.RowDataBound
    Try
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim hlnkAuditTrail As HyperLink = e.Row.FindControl("hyplnkAuditTrail")
            hlnkAuditTrail.Attributes.Add("onclick", "audittrail(" & e.Row.DataItem("HotelId") & "," & ddlGS.SelectedValue & ");")
        End If
    Catch ex As Exception
        lblErrMessage.Message = ex.Message()
    End Try
End Sub

和javascript链接

<script type ="text/javascript" language="javascript" >
    function audittrail(HotelId,Source)
{   var strUrl = "frmGDSAuditTrail.aspx?HotelId=" + HotelId+"&Provider=" + Source;
    var width = 700;
    var height = 300;
    var left = (screen.width/2)-(width/2);
    var top = (screen.height/2)-(height);
    window.open(strUrl,null,
                            'width='+ width +','+
                            'height='+ height+','+
                            'top=' + top +',' +
                            'left=' + left + ',' +
                            'status=yes,' + 
                            'toolbar=no,' + 
                            'menubar=yes,' + 
                            'location=no,' + 
                            'scrollbars=yes,' + 
                            'resizable=yes'
                            );
}

但当点击链接时,新页面不会显示。

我使用了断点,但超链接的属性绑定得很好。

更改此行:

hlnkAuditTrail.Attributes.Add("onclick", "audittrail(" & e.Row.DataItem("HotelId") & "," & ddlGS.SelectedValue & ");")

到此:

hlnkAuditTrail.Attributes.Add("onclick", "audittrail(" & e.Row.DataItem("HotelId") & ",'" & ddlGS.SelectedValue & "');")

为我工作。

HotelId不需要额外的",因为它是一个整数。但是ddlGS.SelectedValue是一个字符串。所以你需要用"来包装它。