gpt4 book ai didi

从 ASP .NET Hyperlink NavigateURL 属性调用 Javascript 函数

转载 作者:行者123 更新时间:2023-11-29 22:36:10 25 4
gpt4 key购买 nike

我有一个在页面加载事件中动态创建的 ASP 表。在那种情况下,我用标题填充 ASP 表,然后是一个指向 .ashx 页面的 ASP .NET 超链接控件,以提供一个文件供客户端下载。

对于特定文件(图像文件),我想启动一个 javascript 函数来打开一个新窗口,其中显示该文件。我拥有执行此操作的所有代码,但我无法让我的 Javascript 函数在超链接 NavigateURL 属性中工作。我是 Javascript 的新手,所以我不确定我错过了什么。我可以做我想做的事吗?我不能使用表格控件吗?

ASP代码隐藏

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim iWineID As Integer

If Not Integer.TryParse(Request.Params("WineID"), iWineID) Then Throw New InvalidOperationException("Invalid request")
Me.lblWineName.Text = Utils.GetWineName(iWineID)
Dim dtDocs As New dsDocs.docsDataTable

Using taDocs As New dsDocsTableAdapters.docsTableAdapter
dtDocs = taDocs.GetDataByProdIDOrWineID((Utils.GetProducerIDByWineID(iWineID)), True, iWineID)
End Using

If dtDocs.Rows.Count = 0 Then
Me.lblDocsFound.Text = "No documents available for this wine."
Else
Me.NumberDocs(dtDocs)

For Each drDoc As dsDocs.docsRow In dtDocs
Dim myRow As New TableRow
Dim myTitleCell As New TableCell
Dim myDLCell As New TableCell
Dim myHL As New HyperLink
Select Case drDoc.doc_type_id
'window.open('preview.aspx?WineID=' + nWineID', 'height=' + nWindowHeight + ',width=' + nWindowWidth + ',status=no,toolbar=no,menubar=no,location=no,scrollbars=' + bScrollbars + ',resizable=' + bScrollbars + ',titlebar=no');
Case Constants.DocType.BottleShot, Constants.DocType.Label, Constants.DocType.Logo
myHL.NavigateUrl = "javascript:OpenPrev('" & drDoc.doc_id & "');return false;" '"javascript:window.open('~/Home/docpreview.aspx?DocID=" & drDoc.doc_id '& "','_blank', 'height=600, width=600,status=no,toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,titlebar=no'"
'"~/Home/docpreview.aspx?DocID=" & drDoc.doc_id
myHL.Text = "View"
Case Else
myHL.NavigateUrl = "~/Home/docs.ashx?DocID=" & drDoc.doc_id
myHL.Text = "Download"
End Select

myTitleCell.Text = StrConv(drDoc.doc_type_name, VbStrConv.ProperCase)
myDLCell.Controls.Add(myHL)
myRow.Cells.Add(myTitleCell)
myRow.Cells.Add(myDLCell)
Me.tableDocs.Rows.Add(myRow)
Next
End If
End Sub

Javascript

function OpenPrev(DocID){

var objWin
var myURL

alert("GO!");
myURL='~/Home/docpreview.aspx?DocID=' + DocID;
objWin=window.open(myURL, 'Doc View', 'width=600,height=600,resizable=no,scrollbars=yes,toolbar=no');
}

最佳答案

您需要先解析 URL。

尝试更改您设置 NavigateURL 的任何地方,例如:

myHL.NavigateUrl = "~/Home/docs.ashx?DocID=" & drDoc.doc_id

收件人:

myHL.NavigateUrl = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + HttpContext.Current.Request.ApplicationPath + "Home/docs.ashx?DocID=" & drDoc.doc_id

关于从 ASP .NET Hyperlink NavigateURL 属性调用 Javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4946218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com