PDA

View Full Version : سوال: مشکل با ImageButton داخل GridView



Mostafa_Sabeti
چهارشنبه 01 آبان 1387, 12:31 عصر
سلام
من داخل یک گرید ویو یک ImageButton گذاشتم که از داخل دیتابیس آدرس تصاویری را میخونه و به ImageURL و PostBackURL میده.
توی اجرای برنامه تصویر را نشان میده و با کلیک روی آن به آدرس تصویر میره ولی مشکل اینجاست که وقتی روی عکس کلیک میشه، توی صفحه جدید اول عکس را نمی آره و پیغام میده که Internet Explorer Could not display the web page ولی وقتی اون صفحه را رفرش میکنم عکس را نشان میده.
کسی تا بحال با این مشکل برخورد کرده؟

kiosksoft
چهارشنبه 01 آبان 1387, 12:57 عصر
روش نمایش عکس از دیتابیس در asp.net ( *زمانی که خود عکس در دیتابیس ذخیره شده باشد* )

این یه فایل ashx هست که باید کنار همون فایلی که عکس هارو نشون میده ,اضافه کنید :



<%@WebHandlerLanguage="C#"Class="Personel_Handler" %>
using System;
using System.Web;
using System.Data;
using System.Data.SqlClient;
publicclassPersonel_Handler : IHttpHandler {
publicvoid ProcessRequest(HttpContext context)
{
try
{
DatabaseClasses dbC = newDatabaseClasses();
SqlConnection myConnection = newSqlConnection(dbC.GetSqlConnection("ConnStr"));
myConnection.Open();
string sql = "Select PersImage from Personel_Tbl where(Personel_ID= @Personel_ID) ";
SqlCommand cmd = newSqlCommand(sql, myConnection);
cmd.Parameters.Add("@Personel_ID", SqlDbType.Int).Value = context.Request.QueryString["Personel_ID"];
cmd.Prepare();
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
context.Response.ContentType = "image/gif";
context.Response.BinaryWrite((byte[])dr["PersImage"]);
dr.Close();
myConnection.Close();
}
catch { }
}

publicbool IsReusable {
get {
returnfalse;
}
}
}


حالا تو گرید این آدرس رو به یو آر ال عکس بدید درست میشه. فقط نام فیلد هارو تنظیم کنید :



<ItemTemplate>
<asp:ImageID="Image1"runat="server"Height="46px"
ImageUrl='<%# "Personel_Handler.ashx?Personel_ID=" + Eval("Personel_ID") %>'Width="45px"/>
</ItemTemplate>

dalaho
چهارشنبه 15 آبان 1387, 15:21 عصر
من از این کد استفاده کردم اما عکس رو نشون نمی ده کسی می تونه کمک کنه؟