PDA

View Full Version : سوال: مشکل در نمایش تصویر در gridview از دیتا بیس



kourosh_asp
یک شنبه 14 تیر 1394, 10:32 صبح
سلام دوستان. من داخل دیتابیس، یک سری فیلد، شامل نام و آدرس تصویر و تاریخ و زمان رو ذخیره کردم و میخوام هر رکورد از اون رو در gridview نمایش بدم. اما هر چقدر ور رفتم نتونستم تصویر رو نمایش بدم.
inspect هم که میگیرم فقط آدرس تصویر رو بهم نشون میده و موجودیتی از نوع تصویر ظاهر نمیشه.
از کوئری لینک استفاده میکنم.
یه مشکل دیگه هم، عدم نمایش دکمه ویرایش هست.
آیا از جنریک هندلر باید استفاده کنم؟
خواهش میکنم کمک ام کنید. خیلی بهش احتیاج دارم. کلی هم گشتم به نتیجه نرسیدم.
.132907




<%@ Page Title="" Language="C#‎‎‎‎‎‎‎‎‎‎‎" MasterPageFile="~/Content.master" AutoEventWireup="true" CodeFile="ManageAdvs.aspx.cs" Inherits="Pages_ManageAdvs" ValidateRequest="false" %>


<asp:Content ID="Content1" ContentPlaceHolderID="cphTitle" runat="Server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="head" runat="Server">
<script src="ckeditor/ckeditor.js"></script>
<script type="text/javascript">
function showpreview(input) {


if (input.files && input.files[0]) {


var reader = new FileReader();
reader.onload = function (e) {
$('#imgAdvImage').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
</script>
</asp:Content>
<asp:Content ID="Content3" ContentPlaceHolderID="cphBody" runat="Server">
<asp:Panel ID="pnlManageNews" runat="server" HorizontalAlign="Center" GroupingText="مدیریت آگهی" DefaultButton="btnSubmitAdv" Direction="RightToLeft" Font-Size="13px">
<hr />


<asp:GridView ID="grdShowAdvs" runat="server" AutoGenerateColumns="false" AllowPaging="true" AllowSorting="true" CssClass="table" OnRowCommand="grdShowAdvs_RowCommand" OnPageIndexChanging="grdShowAdvs_PageIndexChanging" HorizontalAlign="Center" OnRowDataBound="grdShowAdvs_RowDataBound">
<Columns>
<asp:BoundField HeaderText="عنوان آگهی" DataField="AdvTitle" />
<asp:BoundField HeaderText="تاریخ" DataField="AdvDate" />
<asp:BoundField HeaderText="زمان" DataField="AdvTime" />
<asp:BoundField HeaderText=" تصویر" DataField="ImageAdv" />
<asp:BoundField HeaderText="رتبه" DataField="AdvRank" />
<asp:TemplateField>
<ItemTemplate>
<img src='<%# Eval("Img", "ImageAdv")%>' width="400" height="180" />
<div id="divImg" runat="server"></div>


</ItemTemplate>
<ItemTemplate>
<asp:Button ID="btnEditAdv" runat="server" Text="ویرایش" CssClass="Buttons" CommandName="cmdEditAdv" CommandArgument='<%#Eval("IDAdv") %>' />
</ItemTemplate>
<ItemTemplate>
<asp:Button ID="btnDelAdv" runat="server" Text="حذف" CssClass="Buttons" CommandName="cmdDeleteAdv" CommandArgument='<%#Eval("IDAdv") %>' />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<hr />


<table style="width: 100%; direction: rtl; font-size: 13px; float: right; vertical-align: top;">
<tr>
<td style="text-align: left; direction: rtl">عنوان آگهی: </td>
<td style="text-align: right">
<asp:TextBox ID="txtAdvsTitle" runat="server" ValidationGroup="adv" CssClass="TextBox"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvAdvsTitle" runat="server" ValidationGroup="adv" SetFocusOnError="true" ErrorMessage="*" ControlToValidate="txtAdvsTitle" ForeColor="Red" Font-Size="18px" Font-Bold="true"></asp:RequiredFieldValidator>
</td>
<td style="text-align: left; direction: rtl;">آپلود تصویر: </td>
<td style="text-align: right">
<asp:FileUpload ID="fupImageAdv" runat="server" onchange="showpreview(this);" />
</td>
<td style="text-align: right; vertical-align: top">تصویر :</td>
<td style="text-align: right; vertical-align: bottom">
<img id="imgAdvImage" width="200px" height="200px" src="" />
</td>
</tr>


</table>
<p style="text-align: right; direction: rtl; margin-right: 20px;">جزئیات آگهی: </p>
<table style="width: 100%; direction: rtl; font-size: 13px; float: right;">
<tr>
<td>
<asp:TextBox ID="txtAdvsText" runat="server" TextMode="MultiLine" Width="800px" Height="300px" ValidationGroup="news"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvtAdvsText" runat="server" ValidationGroup="adv" SetFocusOnError="true" ErrorMessage="*" ControlToValidate="txtAdvsText" ForeColor="Red" Font-Size="18px" Font-Bold="true"></asp:RequiredFieldValidator>
</td>
</tr>
</table>
<asp:Button ID="btnSubmitAdv" runat="server" Text="ثبت" CssClass="Buttons" ValidationGroup="adv" OnClick="btnSubmitAdv_Click" />
<script>
CKEDITOR.replace('<%=txtAdvsText.ClientID%>');
</script>
</asp:Panel>
</asp:Content>








using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Imaging;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;


public partial class Pages_ManageAdvs : System.Web.UI.Page
{
DataClassesDataContext db = new DataClassesDataContext(System.Configuration.Config urationManager.ConnectionStrings["websiteConnectionString"].ConnectionString);
clsBase cBase = new clsBase();
string strImgAdv, strImgAdvNew;

public void ShowAdvs()
{
var qShowAdv = from tt in db.tbAdvs select tt;
grdShowAdvs.DataSource = qShowAdv;
grdShowAdvs.DataBind();




}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ShowAdvs();


}
}
protected void grdShowAdvs_RowCommand(object sender, GridViewCommandEventArgs e)
{


}
protected void grdShowAdvs_PageIndexChanging(object sender, GridViewPageEventArgs e)
{

}
protected void btnSubmitAdv_Click(object sender, EventArgs e)
{
try
{
if (fupImageAdv.HasFile)
{
string[] validFileTypes = { "jpg", "jpeg", "JPG", "JPEG", "gif", "png", "tif", "tiff", "TIF", "TIFF", "PNG", "GIF" };


string ext = System.IO.Path.GetExtension(fupImageAdv.PostedFile .FileName);
bool isValidFile = false;
for (int i = 0; i < validFileTypes.Length; i++)
{


{
if (ext == "." + validFileTypes[i])
{
isValidFile = true;
break;
}
}
}
if (fupImageAdv.PostedFile.ContentLength < 1048576)
{
if (!isValidFile)
{
cBase.message(Page, "ارسال فایل تصویر ناموفق بود ** پسوند فایل شما باید یکی از این گزینه ها باشد " +
string.Join(",", validFileTypes));
return;
}
else
{
int randomNumber;
Random RNG = new Random();
randomNumber = RNG.Next(10, 1000);
string FileName = System.IO.Path.GetFileName(fupImageAdv.PostedFile. FileName);
strImgAdv = "Advs/" + randomNumber + FileName;
strImgAdvNew = "Advs/" + randomNumber + "new" + FileName;




fupImageAdv.SaveAs(Server.MapPath(strImgAdv));


Bitmap OriginalBM = new Bitmap(Server.MapPath(strImgAdv));
Size newSize = new Size(100, 100);
Bitmap ResizedBM = new Bitmap(OriginalBM, newSize);
ResizedBM.Save(Server.MapPath(strImgAdvNew), ImageFormat.Jpeg);
OriginalBM.Dispose();
System.IO.File.Delete(Server.MapPath(strImgAdv));




}


}
else
{
cBase.message(Page, "حجم فایل تصویر بیش از حد مجاز است");
return;
}
}
tbAdv oAdv = new tbAdv()
{
ImageAdv = strImgAdvNew,
AdvTime = System.DateTime.Now.ToShortTimeString(),
AdvDate = System.DateTime.Now.ToShortDateString(),
AdvTitle = txtAdvsTitle.Text,
AdvContext = txtAdvsText.Text


};
db.tbAdvs.InsertOnSubmit(oAdv);
db.SubmitChanges();
}
catch { }
}


protected void grdShowAdvs_RowDataBound(object sender, GridViewRowEventArgs e)
{
/*if (e.Row.RowType == DataControlRowType.DataRow)
{
Image img = (Image)e.Row.FindControl("image1");


var Data = from p in p.TableName
select p;


img.ImageUrl = Data.first().ImageColumnName;


}*/
//code project
//www.codeproject.com/Questions/613487/How-to-retrieve-image-in-GridView-from-database-in
//barnamenevis.org/showthread.php?449931-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1-%D8%B9%DA%A9%D8%B3-%D8%AF%D8%B1-%DB%8C%DA%A9-%D8%B3%D9%84%D9%88%D9%84-%D8%A7%D8%B2-GridView&highlight=image+gridview


}
}

barghian
یک شنبه 14 تیر 1394, 13:13 عصر
<asp:ImageField DataImageUrlField="Pics" DataImageUrlFormatString="~/ProPic\{0}" HeaderText="تصویر" ItemStyle-Width="20px" ItemStyle-VerticalAlign="Middle" ItemStyle-HorizontalAlign="Center">

kourosh_asp
دوشنبه 15 تیر 1394, 12:08 عصر
<asp:ImageField DataImageUrlField="Pics" DataImageUrlFormatString="~/ProPic\{0}" HeaderText="تصویر" ItemStyle-Width="20px" ItemStyle-VerticalAlign="Middle" ItemStyle-HorizontalAlign="Center">

مرسی ممنون. مشکل حل شد.:تشویق: