aqui continuamos ...
ahora lo mas importante... este es el aspx que trae los datos de una base de datos.. se tiene que llamar ViewImage.aspx
Código:
Imports System.Data.OleDb
Public Class ViewImage
Inherits System.Web.UI.Page
"Region codigo generado por el diseñador bla bla"
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim ImageId As String = Request.QueryString("img")
Try
Dim con As OleDbConnection
con = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("FileDb.mdb").ToString & "")
Dim sql As String = "SELECT Files.FileData, Files.ContentType FROM (Files) WHERE ((Files.ID)=" & ImageId & " )"
Dim dralu As OleDbDataReader
Dim cmd As OleDbCommand
cmd = New OleDbCommand(sql, con)
con.Open()
dralu = cmd.ExecuteReader
If dralu.Read Then
Response.ContentType = dralu.Item("ContentType").ToString
Response.BinaryWrite(dralu.Item("FileData"))
Else
End If
con.Close()
cmd.Dispose()
con.Dispose()
Catch err As OleDbException
Exit Sub
Catch err As Exception
Exit Sub
End Try
End Sub
End Class
Ahora lo que esperabamos todos ... la hoja del datagrid.... que en mi caso se llama webfom1 y contiene un datagrid que tiene una columna de numero de orden, otra con el nombre , otra con un comentario, y otra para LAS FOTOS esta ultima y la primera son Templatecollum o columna plantilla
y el codigo htm de la pagina es este:
Código HTML:
<%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="autoalbum.WebForm1"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<title>WebForm1</title>
<meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
<meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
<meta content="JavaScript" name="vs_defaultClientScript">
<meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<asp:datagrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 94px; POSITION: absolute; TOP: 57px" runat="server" Width="293px" AutoGenerateColumns="False" CellSpacing="2" CellPadding="4" BorderColor="#999999" BorderStyle="Solid" BorderWidth="0px" BackColor="#CCCCCC" ForeColor="Black">
<SelectedItemStyle Font-Bold="True" ForeColor="White" BackColor="#000099"></SelectedItemStyle>
<ItemStyle BackColor="White"></ItemStyle>
<HeaderStyle Font-Bold="True" ForeColor="White" BackColor="Black"></HeaderStyle>
<FooterStyle BackColor="#CCCCCC"></FooterStyle>
<Columns>
<asp:TemplateColumn HeaderText="Numero de Orden">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'>
</asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.ID") %>'>
</asp:TextBox>
</EditItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="First Name" HeaderText="Nombre del Usuario"></asp:BoundColumn>
<asp:BoundColumn DataField="Last Name" HeaderText="Comentario"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="foto">
<ItemTemplate>
<asp:HyperLink Tooltip="Click aqui para ver imagen original" Target="_blank" NavigateUrl='<%# "ViewImage.aspx?img=" + Cstr(DataBinder.Eval(Container, "DataItem.ID")) %>' ImageUrl='<%# "ViewImage.aspx?img=" + Cstr(DataBinder.Eval(Container, "DataItem.ID")) %>' Width="120" Height="120" Runat="server" ID="Foto" />
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle HorizontalAlign="Left" ForeColor="Black" BackColor="#CCCCCC" Mode="NumericPages"></PagerStyle>
</asp:datagrid></form>
</body>
</HTML>
Bueno para finalizar, quiero decir que hay que declarar en la parte Vbasic del webform1.aspx, la datagrid, y llenar su datasource con un dataset que traiga los demas datos menos la foto que la trae viewimage y con eso llenar las colunas que restan.
para completar les muestro la forma de la base de datos que deben usar para que funcione tal cual esta...
Id Autonumerico Key
File Name Texto
FileSize Numero
FileData Objeto Ole
ContentType Texto
First Name Texto
Last Name Texto
Profession Texto
Nota:
El que tenga ya hecho un programa para subir ficheros puede usarlo, este post es largo por que contiene todo para subir y leer imagenes... sino seria cortito.. solo la parte de traer y mostrar...
Espero que sirva.. y hasta la proxima