ASP.NET

2010年9月16日 (木)

ActiveReports for.NETの怪

あるテキストボックスを修正していたところ、右寄せ設定にすると左寄せに、
左寄せ設定をすると右寄せになった。
VisualStudioを再起動して見ても同じ。
右寄せにしなければならないところだったので左寄せ設定にすれば見た目はOKだが
それも嫌なので、テキストボックスを作り直した。
Version:ActiveReports for.NET2.0JSP2

2008年3月 8日 (土)

ダウンロード用ダイアログボックスのファイル名がソースの(URLの)ファイル名になる

ダウンロードのダイアログボックスを表示させようとしたが、ファイル名が"***.aspx"になってしまった。
実際にダウンロードされる中身はダウンロードしたいファイルだが。
 
当初のコード
Protected Sub gvFile_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim strPath As String
         'オブジェクトに渡して、ファイル化
        strPath = gvFile.SelectedRow.Cells(5).Text & "\" & gvFile.SelectedValue
                
        'ファイルのダウンロードの確認画面
        If strFile <> "" Then
            Response.ContentType = "application/octet-stream"
            Response.AddHeader("Content-Disposition", "attachment; filename=" + strPath) 
            Response.Flush()
            Response.WriteFile(strPath)  
            Response.End()
        End If
    End Sub
 
修正したコード
Protected Sub gvFile_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim strPath As String
        Dim strFile As String
       
        'オブジェクトに渡して、ファイル化
        strPath = gvFile.SelectedRow.Cells(5).Text & "\" & gvFile.SelectedValue
        strFile = gvFile.SelectedValue
               
        'ファイルのダウンロードの確認画面
        If strFile <> "" Then
            Response.ContentType = "application/octet-stream"
            Response.AddHeader("Content-Disposition", "attachment; filename=" + strFile) '表示するファイル名指定
            Response.Flush()
            Response.WriteFile(strPath)   'ダウンロード元のパス指定
            Response.End()
        End If
    End Sub
 
Response.AddHeaderのところではファイル名のみを指定しなければならなかったようだ。
ネットでさんざん調べたが、同様な状況で困った書き込みはあっても解決した、というのがなくて苦労した。