Click here to Skip to main content
15,890,123 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Hello

Image not displaying after i click update button in grid view in asp.net.

It disply's cross.

My code for aspx is as follows:
XML
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MainTable.aspx.cs" Inherits="commonlogin.MainTable" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>GridView</title>

    <link href="Content/StyleSheet1.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns ="False"
            AutoGenerateDeleteButton="True" onrowdeleted="GridView1_RowDeleted" AutoGenerateEditButton ="True"
            onrowdeleting="GridView1_RowDeleting" onrowediting="GridView1_RowEditing"
            onrowupdating="GridView1_RowUpdating"
            onpageindexchanging="GridView1_PageIndexChanging"
            onrowcancelingedit="GridView1_RowCancelingEdit" AllowPaging="True" CssClass ="bodytext"
            AllowSorting="True" CellPadding="4"
            GridLines="None" onselectedindexchanged="GridView1_SelectedIndexChanged"
            ForeColor="#333333" >


            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />


        <Columns>


            <asp:TemplateField HeaderText="ID"  >
                <%--<EditItemTemplate>
                    <asp:TextBox ID="txtID" runat="server" Text='<%# Bind("ID") %>'></asp:TextBox>
                </EditItemTemplate>--%>
                <ItemTemplate>
                 <%--<asp:Label ID="Label1" runat="server" ImageUrl='<%# "Handler1.ashx?ID=" + Eval("ID")%>'  Text='<%# Bind("ID") %>'></asp:Label>--%>
                    <asp:Label ID="lblID" runat="server" CssClass="bodytext"   Text='<%# Bind("ID") %>'></asp:Label>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Left" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Name">
                <EditItemTemplate>
                    <asp:TextBox ID="txtName" runat="server" CssClass ="TextBox"  Text='<%# Bind("Name") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblName" runat="server" CssClass="bodytext"  Text='<%# Bind("Name") %>'></asp:Label>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Left" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Description">
                <EditItemTemplate>
                    <asp:TextBox ID="txtDesc" runat="server" CssClass ="TextBox"  Text='<%# Bind("Description") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblDesc" runat="server" CssClass="bodytext"  Text='<%# Bind("Description") %>'></asp:Label>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Left" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="Image">
                <EditItemTemplate>
                    <%--<asp:TextBox ID="txtImage" runat="server" CssClass ="TextBox" EnableViewState="true"   Text='<%# Bind("Image") %>' ></asp:TextBox>--%>

                 <asp:Image ID="Image1" runat="server"  EnableViewState="true"  ImageUrl='<%# "Handler1.ashx?ID=" + Eval("ID")%>'/>
                    <asp:FileUpload ID="FileUpload2" runat="server" />
                <asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Text="Update Image" />
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                <%--<asp:TextBox ID="txtImage" runat="server" CssClass ="TextBox"></asp:TextBox>--%>

                </EditItemTemplate>
                <ItemTemplate>
                <asp:Image ID="Image1" runat="server"  EnableViewState="true"  ImageUrl='<%# "Handler1.ashx?ID=" + Eval("ID")%>'/>


                <%-- <asp:FileUpload ID="FileUpload2" runat="server" />
                <asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Text="Update Image" />
                    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
--%>




                <%--<asp:Image ID="Image2" runat="server" ImageUrl='<%# "Handler1.ashx?ID=" + Bind("ID")%>'/>--%>

                    <%--<asp:Label ID="lblImage" runat="server"  Text='<%# Bind("Image") %>'></asp:Label>--%>

                    <%--<asp:Label ID="lblImage" runat="server"  ImageUrl='<%# "Handler1.ashx?ID=" + Eval("ID") %>'></asp:Label>--%>
                    <%--<asp:Label ID="Label1" runat="server" ImageUrl='<%# "Handler1.ashx?ID=" + Eval("ID")%>'  Text='<%# Bind("Image") %>'></asp:Label>--%>
                </ItemTemplate>

                <ItemStyle HorizontalAlign="Left" BackColor ="AliceBlue" />

                 <%--<asp:FileUpload ID="FileUpload2" runat="server" />
                <asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Text="Update Image" />--%>
            </asp:TemplateField>

            <asp:TemplateField HeaderText="Active">
                <EditItemTemplate>
                    <asp:TextBox ID="txtActive" runat="server" CssClass ="TextBox" Text='<%# Bind("Active") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblActive" runat="server" CssClass="bodytext"  Text='<%# Bind("Active") %>'></asp:Label>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Left" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="CreatedBy">
                <EditItemTemplate>
                    <asp:TextBox ID="txtCreatedBy" runat="server" CssClass ="TextBox"  Text='<%# Bind("CreatedBy") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblCreatedBy" runat="server" CssClass="bodytext"  Text='<%# Bind("CreatedBy") %>'></asp:Label>
                </ItemTemplate>
                <ItemStyle HorizontalAlign="Left" />
            </asp:TemplateField>
            <asp:TemplateField HeaderText="CreatedDate">
                <EditItemTemplate>
                    <asp:TextBox ID="txtCreatedDate" runat="server" CssClass ="TextBox"  Text='<%# Bind("CreatedDate") %>'></asp:TextBox>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ID="lblCreatedDate" runat="server" CssClass="bodytext"  Text='<%# Bind("CreatedDate") %>'></asp:Label>

                </ItemTemplate>
                <ItemStyle HorizontalAlign="Left" />
            </asp:TemplateField>
            </Columns>
            <EditRowStyle BackColor="#999999" />
            <FooterStyle BackColor="#5D7B9D" ForeColor="White" Font-Bold="True" />
            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
            <SortedAscendingCellStyle BackColor="#E9E7E2" />
            <SortedAscendingHeaderStyle BackColor="#506C8C" />
            <SortedDescendingCellStyle BackColor="#FFFDF8" />
            <SortedDescendingHeaderStyle BackColor="#6F8DAE" />
            </asp:GridView><br />
            <%--<asp:FileUpload ID="FileUpload2" runat="server" />--%>
                <%--<asp:Button ID="btnUpdate" runat="server" OnClick="btnUpdate_Click" Text="Update Image" />
        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>--%>
        <tr>

        <td>

        </div>

            <asp:HyperLink ID="HyperLink1" CssClass ="wishlist " NavigateUrl ="~/TableAdd.aspx" runat="server">AddNew</asp:HyperLink><br /><br />

        </td>
        </tr>
        <asp:label id="Messagelbl" forecolor="Red" CssClass="wishlist" runat="server"/>


    </form>
</body>
</html>


And my aspx.cs code is:

C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Data;
using System.Configuration;
using System.IO;

namespace commonlogin
{
    public partial class MainTable : System.Web.UI.Page
    {
        SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
        SqlCommand cmd = new SqlCommand();
        byte[] filebyte = null;
        string guery;
        protected void Page_Load(object sender, EventArgs e)
        {
            //SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString);
            if (!IsPostBack)
            {
                bind();
                
            }



           

        }

        protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e)
        {

        }

        protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
            Label lbldeleteid = (Label)row.FindControl("lblID");
            conn.Open();
            //SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_SqlImage", conn);
            SqlCommand cmd = new SqlCommand("Delete tbl_SqlImage where ID=" + lbldeleteid.Text + "", conn);

            cmd.ExecuteNonQuery();
            conn.Close();
            bind();



        }
        public void bind()
        {

            conn.Open();
            SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM tbl_SqlImage", conn);
            DataSet ds = new DataSet();
            da.Fill(ds);
            if (ds.Tables[0].Rows.Count != 0)
            {
                GridView1.DataSource = ds;
                GridView1.DataBind();
            }
            conn.Close();

        }
        protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
        {
            GridView1.EditIndex = e.NewEditIndex;
            bind();
            //GridView1.DataBind();
        }
        //june 25
        public byte[] convertByte(FileUpload FileControl)
        {
            
            Stream fs = default(Stream);
            byte[] bytes1 = null;
            byte[] postfile = null;
            fs = FileControl.PostedFile.InputStream;
            BinaryReader br1 = new BinaryReader(fs);
            bytes1 = br1.ReadBytes(FileControl.PostedFile.ContentLength);
            postfile = bytes1;
            return postfile;
            
        }
        //june25
        protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
        {
            //june25
            GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex];
            Label lblID = (Label)row.FindControl("lblID");
            //Image Image = (Image)row.FindControl("Image1");
            TextBox textName = (TextBox)row.FindControl("txtName");
            TextBox textDesc = (TextBox)row.FindControl("txtDesc");
            //TextBox textImage = (TextBox)row.FindControl("txtImage");
            TextBox textActive = (TextBox)row.FindControl("txtActive");
            TextBox textCreatedBy = (TextBox)row.FindControl("txtCreatedBy");
            TextBox textCreatedDate = (TextBox)row.FindControl("txtCreatedDate");

            //FileUpload FileUpload2 = (FileUpload)row.FindControl("FileUpload2");

            FileUpload Image = (FileUpload)row.FindControl("FileUpload2");
            //FileUpload FileUpload2 = (FileUpload)GridView1.Rows[e.RowIndex].FindControl("FileUpload2");

            GridView1.EditIndex = -1;

            conn.Open();



            SqlCommand cmd = new SqlCommand("UPDATE tbl_SqlImage set Name='" + textName.Text + "' , Description='" + textDesc.Text + "' , Image='" + convertByte(Image) + "' , Active='" + textActive.Text + "' , CreatedBy='" + textCreatedBy.Text + "' , CreatedDate='" + textCreatedDate.Text + "' where ID='" + lblID.Text.Trim() + "' ", conn);
            //SqlCommand cmd = new SqlCommand("UPDATE tbl_SqlImage set Name='" + textName.Text + "' , Description='" + textDesc.Text + "' , Image='" + textImage.Text + "' , Active='" + textActive.Text + "' , CreatedBy='" + textCreatedBy.Text + "' , CreatedDate='" + textCreatedDate.Text + "' where ID='" + lblID.Text.Trim() + "' ", conn);
            cmd.ExecuteNonQuery();
            conn.Close();
            bind();

            ////GridView1.DataBind();
            //june25

        }
        //june25 testing
        
        //june25 testing


        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            bind();

        }

        protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            GridView1.EditIndex = -1;
            bind();
        }

        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
        protected void btnUpdate_Click(object sender, EventArgs e)
        {
            //int sizelimit = 5242880;

            //if (FileUpload2.HasFile)
            //{
            //    if (FileUpload2.PostedFile.ContentLength <= sizelimit)
            //    {
            //        string path = "D:\\uploads\\" + FileUpload2.FileName;
            //        FileUpload2.SaveAs(path);
            //        GridView1.DataBind();
            //        //Label1.Text = "File upload to" + path;
            //    }
            //    else
            //    {
            //        //Label1.Text = "File exceeds size limit";
            //    }
            //}
            
            
        }
       

       
    }
}
Please help me with this.
Posted
Updated 25-Jun-12 0:11am
v2
Comments
Karthik Harve 25-Jun-12 6:12am    
[Edit] Pre tags added.
Pankaj Nikam 25-Jun-12 6:13am    
Please dont repost the question. You have already asked the same question After updating gridview image column is going null in asp.net c#[^] here.

change
ImageUrl='<%# "Handler1.ashx?ID=" + Eval("ID")%>'
to
ImageUrl='<%# string.Format("Handler1.ashx?ID={0}",Eval("ID"))%>'
 
Share this answer
 
Hi,

Try in row databound event like this, and remove ImageUrl attribute from page source.

C#
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if(e.Row.RowType==DataControlRowType.DatRow)
           {
                string id = ((Label)e.Row.FindControl("lblID")).Text;
                ((Image)e.Row.FindControl("Image1")).ImageUrl="Handler1.ashx?ID=" + id +";
           }

        }


hope it works.
 
Share this answer
 
Comments
Nikil0012 25-Jun-12 7:17am    
No sir it's nt working, same problem

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS


CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900