Posts Tagged ‘Asp.Net’
Forçar download em Asp.Net
terça-feira, setembro 23rd, 2008Uma rotina bem simples para forçar o download de arquivos em Asp.Net, evitando que eles sejam abertos no browser. Por exemplo, se você quiser forçar que o usuário baixe um arquivo de imagem ao invés de abrir no browser, esta função será útil. Segue o código em VB.Net e C#:
''' <summary> ''' Rotina para forçar o download de arquivos ''' </summary> ''' <param name="caminhoArquivo">Caminho para o arquivo no sistema de arquivos</param> ''' <param name="contentType">Content-Type do arquivo (opcional)</param> Protected Sub ForceDownload(ByVal caminhoArquivo As String, _ Optional ByVal contentType As String = "application/octet-stream") Dim arquivo As FileInfo = New FileInfo(caminhoArquivo) Response.Clear() Response.AddHeader("Content-Disposition", "attachment; filename=" + arquivo.Name) Response.AddHeader("Content-Length", arquivo.Length.ToString()) Response.ContentType = contentType Response.WriteFile(arquivo.FullName) Response.End() End Sub
/// <summary> /// Rotina para forçar o download de arquivos /// </summary> /// <param name="caminhoArquivo">Caminho para o arquivo no sistema de arquivos</param> /// <param name="contentType">Content-Type do arquivo (opcional)</param> protected void ForceDownload(string caminhoArquivo, string contentType) { if (contentType == null) contentType = "application/octet-stream"; FileInfo arquivo = new FileInfo(caminhoArquivo); Response.Clear(); Response.AddHeader("Content-Disposition", "attachment; filename=" + arquivo.Name); Response.AddHeader("Content-Length", arquivo.Length.ToString()); Response.ContentType = contentType; Response.WriteFile(arquivo.FullName); Response.End(); }
ASP.Net – Desabilitar o cache do browser para a página
terça-feira, abril 15th, 2008É fácil desabilitar o caching da página no browser. Basta inserir a seguinte linha no Page_Load:
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Adicionar registros pelo rodapé do GridView
segunda-feira, agosto 27th, 2007Sem dúvida alguma o controle GridView trouxe inúmeras melhorias sobre seu antecessor, o DataGrid. Mas um detalhezinho tem incomodado a comunidade de programadores .Net: quando não existem registros a exibir no GridView, ele simplesmente não exibe o controle, impossibilitando a inserção de registros através do rodapé quando não há nenhum registro, como muitos faziam no DataGrid.
Mas como na informática nada é impossível
, meu amigo Marco Chilá conseguiu uma solução para essa "coisinha chata" do GridView e postou em seu blog. Vale a pena dar uma olhada na solução…
Mudando cor de fundo da linha do GridView em tempo de execução
terça-feira, agosto 14th, 2007Esses dias precisei de uma rotina que altera a cor de fundo da linha do GridView em tempo real. A princípio achei que fosse apenas atribuir uma string com a cor em hexadecimal (formato usado no HTML) para a propriedade BackColor do GridViewRow que já estaria resolvido, mas não deu certo pois a propriedade BackColor é do tipo System.Drawing.Color e não aceita strings. Dei uma fuçada nas classes do namespace System.Drawing e encontrei a solução:
e.Row.BackColor = System.Drawing.ColorTranslator.FromHtml("#FF0000")
Coloquei o código no evento RowDatabound do GridView e deu certo. Fica aí a dica para os iniciantes em .Net como eu. ![]()
Obter valores da Session em uma class library
segunda-feira, agosto 13th, 2007Essa dica teve a colaboração do meu amigo Marco Chilá.
Se você tem uma class library no .Net (fora do contexto web) e deseja pegar o valor de uma variável armazenada na Session, em um contexto web, faça o seguinte:
Imports System.Web
var = HttpContext.Current.Session("variavel")O mesmo vale para Application, Request, Response, etc:
Imports System.Web
var = HttpContext.Current.Application("variavel")Bastante útil para acessar os recursos do contexto web, mesmo estando em uma class library fora dele.