PDA

View Full Version : سوال: مشکل فایل pdf



ezzatvafaei
دوشنبه 20 آذر 1391, 11:17 صبح
باسلام
اطلاعات رو میخونم وداخل یه گرید نمایش میدم اما گریوویو فقط مسیر فایل رو نمایش میده .داخل گریدلینکم گذاشتم اما فایل pdf رونشون نمیده.با تگ aمیشه .اما من میخوام قابلیت حذف یا درج جدید یا نمایش چند فایل به طور ییکجارو داشته باشم که ازدیتابس لود میشه
ممنون میشم اگه راهنماییم کنید

rezayeman
دوشنبه 20 آذر 1391, 13:25 عصر
اطلاعاتو از کجا می خونی؟ کدی که استفاده میکنی برای خوندن چیه؟ اینجا بزارش

ezzatvafaei
دوشنبه 20 آذر 1391, 19:08 عصر
ببین یه جدول داخل دیتا بیس دارم که مسیر ونام فایل pdf روذخیره میکنه بعدش گرید ویو را Bind میشه به اون آدرس.حالا اون آدرس فقط به صورت یه متنه که هیچ قابلیتی نداره. تگ a رو هم گذاشتم وhref اون رو به آدرس setکردم اما به دردم نمیخوره چون تگ a .به صورت دستی تنظیم میشه اونم یه بار. اما من میخوام هربار از روی دیتا بیس به روزرسانی بشه.باید یه کنترلی وجود داشته باشه واسه فایلهای pdf .اونم acrobat adob reader.dllکه هر قدسعی میکنم لود نمیشه

rezayeman
سه شنبه 21 آذر 1391, 07:33 صبح
ستونی که قراره فایل pdf را باز کنه از نوع button بزار و کدی بنویس که کاربر روش کلیک کرد اون فایل باز بشه. از تگ استفاده نکن تو قسمت کد نویسی اینکارو بکن
یک ستون دکمه اضافه کن و ستونی که مسیر فایل توش هست رو مخفی کن
با این کد یک ستون دکمه اضافه میشه

DataGridViewButtonColumn cl = new DataGridViewButtonColumn();
cl.Name = "Attach";
cl.Visible = true;
//cl.Width = 50;
cl.FlatStyle = FlatStyle.Popup;
DatagvMain.Columns.Insert(DatagvMain.Columns.Count , cl);
DatagvMain.Columns["Attachment"].Visible = false;


با این کد هم میتونی به ستون دکمه مقدار بدی

foreach (DataGridViewRow Row in DatagvMain.Rows)
{
DatagvMain.Rows[Row.Index].Cells["Attach"].ToolTipText = "برای باز شدن فایل کلیک کنید ";

if (DatagvMain.Rows[Row.Index].Cells["Attachment"].Value.ToString().Trim() == "")
{
DatagvMain.Rows[Row.Index].Cells["Attach"].Value = "موجود نیست";
}
else
{
DatagvMain.Rows[Row.Index].Cells["Attach"].Value = "باز کردن";
}
}


این دستور را هم در رویداد Cellclick مربوط grideview بنویس تا وقتی کاربر کلیک کرد فایل باز بشه

private void DatagvMain_CellClick(object sender, DataGridViewCellEventArgs e)
{
int Ri = e.RowIndex, ci = e.ColumnIndex;
if (e.ColumnIndex > -1)
{
if (DatagvMain.Columns[e.ColumnIndex].Name == "Attach" && e.RowIndex == -1) return;
if (DatagvMain.Columns[e.ColumnIndex].Name == "Attach")
{
if (DatagvMain.Rows[Ri].Cells["Attachment"].Value.ToString().Trim() == "")
{
Mess.Information("فایلی برای این رکورد تعیین نشده است", "توجــه");
}
else
{
try
{
System.Diagnostics.Process.Start(Path + "\\" + FileName);
}
catch (Exception ex)
{
Mess.Error(ex.Message, "پیغام خطا");
}
}
}
}
}


توجه :
1- attachment نام ستون یا همون فیلدی هستش که آدرس فایل داخلش قرار داره
2- Mess.Information نام مسیج باکسی هستش که من استفاده کردم که شما باید پیغامو به طریق دیگری نمایش بدین. من از این کد توی win application استفاده کردم

hamed_hossani
سه شنبه 21 آذر 1391, 10:47 صبح
http://barnamenevis.org/showthread.php?371814-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D9%81%D8%A7%DB%8C%D9%84-pdf%D8%AF%D8%B1%D8%B3%D8%A7%DB%8C%D8%AA&p=1644519#post1644519
سلام
پلا گین جی کوری
jQuery Media Plugin - Misc Demo