我有一個在頁面加載事件上動態創建的ASP表。在這種情況下,我使用標題填充ASP表格,然後使用指向.ashx頁面的ASP .NET Hyperlink控件來爲客戶端下載文件。來自ASP .NET的Javascript函數調用超鏈接NavigateURL屬性
對於特定的文件(圖像文件),我想啓動一個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');
}
沒有挖得太深,只是一個快速件事:JavaScript不理解的概念` 〜「 - 這是一個.NET概念,僅在服務器代碼中提供。 – 2011-02-09 14:35:47