Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lab Design

[Resolvido] Upload no modo Edit do formview

Recommended Posts

Eu tenho dois formviews numa pagina, um pra Insert e outro pra Edit.

 

O Upload do Insert funciona corretametne mas o do Edit não.

 

Qual é a mágica aqui?

 

abaixo bloco aspx

<asp:Content ID="Content1" ContentPlaceHolderID="Content1" Runat="Server">

<br />

<div style="margin-right: 10px; padding: 10px; width:700px">

<asp:GridView ID="grdDiretoria"

DataSourceID="srcDiretoria"

DataKeyNames="diretoriaId"

AutoGenerateColumns="False"

CssClass="grid"

style="width:100%"

GridLines="None"

OnSelectedIndexChanged="grdDiretoria_SelectedIndexChanged"

OnRowDeleted="grdDiretoria_RowDeleted"

CellPadding="2"

ForeColor="#333333"

Caption="Use esta página para Inserir/Editar ou Excluir Registros da Agenda da Diretoria"

runat="server" >

 

<Columns>

<asp:TemplateField>

<ItemTemplate>

<asp:LinkButton

ID="lnkEdit"

Text="Edit"

CommandName="Select"

runat="server" /> /

<asp:LinkButton

ID="LnkDelete"

Text="Delete"

CommandName="Delete"

OnClientClick="return confirm('Tem certeza que deseja excluir este registro?');"

runat="server" />

</ItemTemplate>

</asp:TemplateField>

<asp:BoundField

DataField="nome"

HeaderText="Nome" />

<asp:BoundField

DataField="cargo"

HeaderText="Cargo" />

</Columns>

</asp:GridView>

 

 

 

 

<br />

<custom:OpenWebWindow ID="lnkAdd" runat="server" Text="Adicionar Registro" WebWindowID="winAdd" />

<br />

 

<custom:WebWindow ID="winEdit" Hide="True" WindowTitleText="Edit Agenda" runat="server" style="left: 26px; top: 492px; background:white">

<asp:FormView ID="frmEdit" DataSourceID="srcDiretoriaUpdate" DefaultMode="Edit" runat="server"

OnItemCommand="frmEdit_ItemCommand" OnItemUpdated="frmEdit_ItemUpdated">

 

<EditItemTemplate>

<table cellpadding=2 cellspacing=2 border=0>

<tr>

<td class="label">Nome:</td>

<td>

<asp:TextBox ID="nome" style="width:300px" Text='<%# Bind("nome") %>' runat="server" /></td>

<tr>

<td class="label">Cargo:</td>

<td>

<asp:TextBox ID="cargo" width=300px Text='<%# Bind("cargo") %>' runat="server" /></td>

<tr>

<td class="label">Currículo:</td>

<td>

<asp:TextBox ID="curriculo" width=300px TextMode="MultiLine" Rows="10" Text='<%# Bind("curriculo") %>' runat="server" /></td>

<tr>

<td class="label">Foto:</td>

<td>

<asp:FileUpload ID="upImage" runat="server" FileName='<%# Bind("urlFoto") %>' />

</td>

<tr>

<td colspan=2 align=center>

<asp:Button ID="btnEdit" Text="Atualizar" CommandName="Update" ValidationGroup="Edit"

runat="server" />

<asp:Button ID="btnCancel" Text="Cancelar" CommandName="Cancel" CausesValidation="false"

runat="server" />

</td>

</table>

</EditItemTemplate>

</asp:FormView>

</custom:WebWindow>

 

 

 

 

 

 

 

 

 

 

 

<custom:WebWindow ID="winAdd" runat="server" Hide="true" ShowCloseButton="False"

Style="left: 23px; top:50px; background:white; padding:6px" WindowTitleText="Novo Registro">

<fieldset>

<legend><b> Registro de novo membro da diretoria</b></legend>

 

<asp:FormView ID="frmAdd" DataSourceID="srcDiretoria" DefaultMode="Insert"

OnItemInserted="frmAdd_ItemInserted" runat="server">

<InsertItemTemplate>

<table cellpadding=2 cellspacing=2 border=0>

<tr>

<td class="label">Nome:</td>

<td>

<asp:TextBox ID="nome" style="width:300px" Text='<%# Bind("nome") %>' runat="server" /></td>

<tr>

<td class="label">Cargo:</td>

<td>

<asp:TextBox ID="cargo" width=300px Text='<%# Bind("cargo") %>' runat="server" /></td>

<tr>

<td class="label">Currículo:</td>

<td>

<asp:TextBox ID="curriculo" width=300px TextMode="MultiLine" Rows="10" Text='<%# Bind("curriculo") %>' runat="server" /></td>

<tr>

<td class="label">Foto:</td>

<td>

<asp:FileUpload ID="upImage" runat="server" FileName='<%# Bind("urlFoto") %>' /></td>

<tr>

<td colspan=2 align=center>

<asp:Button ID="btnAdd" Text="Atualizar" CommandName="Insert" ValidationGroup="Edit"

runat="server" />

<asp:Button ID="btnCancel" Text="Cancelar" CommandName="Cancel" CausesValidation="false"

runat="server" />

</td>

</table>

</InsertItemTemplate>

</asp:FormView>

</fildset>

</custom:WebWindow>

 

 

 

 

<!-- inclusao -->

<asp:ObjectDataSource

ID="srcDiretoria"

runat="server"

InsertMethod="Insert"

SelectMethod="Select"

DeleteMethod="Delete"

TypeName="AMF.Diretoria">

<DeleteParameters>

<asp:Parameter Name="DiretoriaId" Type="Int32" />

</DeleteParameters>

 

<InsertParameters>

<asp:Parameter

Name="nome"

Type="String" />

<asp:Parameter

Name="cargo"

Type="String" />

<asp:Parameter

Name="curriculo"

Type="String" />

<asp:Parameter

Name="urlFoto"

Type="String" />

</InsertParameters>

</asp:ObjectDataSource>

 

 

<!-- para edição -->

<asp:ObjectDataSource

ID="srcDiretoriaUpdate"

runat="server"

SelectMethod="SelectById"

UpdateMethod="Update"

TypeName="AMF.Diretoria">

 

<UpdateParameters>

<asp:ControlParameter Name="DiretoriaId" ControlID="grdDiretoria" />

<asp:Parameter

Name="nome"

Type="String" />

<asp:Parameter

Name="cargo"

Type="String" />

<asp:Parameter

Name="curriculo"

Type="String" />

<asp:Parameter

Name="urlFoto"

Type="String" />

</UpdateParameters>

 

<SelectParameters>

<asp:ControlParameter

ControlID="grdDiretoria"

Name="diretoriaId"

PropertyName="SelectedValue"

Type="Int32" />

</SelectParameters>

</asp:ObjectDataSource>

 

 

</div>

</asp:Content>

bloco c#

using System;

using System.Data;

using System.Configuration;

using System.Collections;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

using System.Drawing;

using System.Drawing.Imaging;

using System.IO;

 

public partial class Manage_AdmDiretoria : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

 

}

protected void frmEdit_ItemUpdated(object sender, FormViewUpdatedEventArgs e)

{

grdDiretoria.DataBind();

saveImage();

}

 

protected void grdDiretoria_SelectedIndexChanged(object sender, EventArgs e)

{

winEdit.Hide = false;

}

protected void frmEdit_ItemCommand(object sender, FormViewCommandEventArgs e)

{

winEdit.Hide = true;

}

protected void frmAdd_ItemInserted(object sender, FormViewInsertedEventArgs e)

{

grdDiretoria.DataBind();

saveImage();

}

 

protected void grdDiretoria_RowDeleted(object sender, GridViewDeletedEventArgs e)

{

grdDiretoria.DataBind();

}

 

 

private void saveImage()

{

 

FileUpload upload = (FileUpload)frmAdd.FindControl("upImage");

 

String path = Server.MapPath("~/Diretoria/" + upload.FileName);

 

// if (!File.Exists(path))

// {

if (upload.HasFile)

{

 

// To enable this sample, grant Write permission to the ASP.NET process account

// for the Images subdirectory and uncomment below lines of code.

upload.SaveAs(path);

 

 

#region Imagem Maior

using (Bitmap bitmap = new Bitmap(upload.PostedFile.InputStream, false))

if (bitmap.Width > bitmap.Height)

{

int wi = bitmap.Width;

int he = bitmap.Height;

int novaAltura = (wi * 100) / he;

CreateThumbnail(140, novaAltura, path, Server.MapPath("~/Diretoria/Thumbs/" + upload.FileName));

 

 

}

else

{

int he = bitmap.Height;

int wi = bitmap.Width;

int novaLargura = (wi * 100) / he;

CreateThumbnail(novaLargura, 100, path, Server.MapPath("~/Diretoria/Thumbs/" + upload.FileName));

}

#endregion

}

 

 

// }

 

 

}

 

public void CreateThumbnail(int largura, int altura, string srcpath, string destpath)

{

System.Drawing.Image img = System.Drawing.Image.FromFile(srcpath);

System.Drawing.Image imgthumb = img.GetThumbnailImage(largura, altura, null, new System.IntPtr(0));

imgthumb.Save(destpath, ImageFormat.Jpeg);

img.Dispose();

imgthumb.Dispose();

}

}

Quando o registro entra em modo de edição, ele chama um class pra atualizar a database, aqui também está atualizando corretamente a url da nova imagem mas quando volta para o upload, simplesmente não em nada na variavel upImage.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.