PDA

View Full Version : آموزش: ایجاد گالری عکس داینامیک توسط Jquery



Himalaya
جمعه 24 تیر 1390, 16:55 عصر
سلام
تو این تاپیک میخوام طرز تهیه یک گالری عکس داینامیک رو توسط JQuery توضیح بدم
این توضیحات 2 بخش داره (البته 3 بخش هستش که بخش سوم رو بعدا اضافه میکنم)


ساخت یه گالری عکس توسط Visual Light Box (شما هز هر گالری که میخواید میتونید استفاده کنید) وقرار دادن خروجی اون (فایلهای پابلیش شده) مثل تصاویر و استایلها و ... تو پروژه ای توی vs
تو قسمت قبل که کار خاصی توسط ما انجام نمیشه. تو مرحله 2 میخوایم آیتمها رو از حالت ثابت خارج کنیم و اونها رو از یه فایل Xml یا یه بانک اطلاعاتی بخونیم. من اینجا از Xml استفاده میکنم که تو اجراش مشکلی نباشه.

نرم افزار گفته شده رو از اینجا دانلود (http://www.visuallightbox.com/)کنید
واسه قسمت 1 بعد از اجرای نرم افزار، از طریق آیکن + (یا درگ کردن تصاویر) عکسهای خودمون رو وارد نرم افزار میکنیم

بعد از این کار ار قسمت پراپرتی (آیکن چرخ دنده) وارد قسمت تنطیمات میشیم و تنظیمات مربوط به گالری عکس رو انجام میدیم (مثل انتخاب Theme برای تصاویر thumb و تصاویر اصلی، رنگ لایه ای که قراره رو صفحه کشیده بشه، نوع افکت برای نمایش تصویر بعدی و ...)
فرض کنید پروژه رو بعد از انجام تنظیمات، پابلیش کردیم. خروجی شامل موارد زیر هستش


یه فایل index.htm که گالری عکس تو اون نمایش داده میشه



یه پوشه data که حاوی 2 پوشه image (تصاویر اصلی) و thumbnails (تصاویر کوچیک) هستش



یه پوشه دیگه به اسم engine که فایلهای css,js و تصاویر مربوط به تم گالری تو اون قرار گرفتن

دوباره فرض کنید که گالری عکس ما میخواد مثلا مثل تصویر زیر باشه (این چیزیه که نرم افزار، بر اساس تنظیمات انتخابی ما، خودش ایجاد میکنه و من اینجا قصد درست کردن یه صفحه خوشجیل موشجیلو ندارم. پس از خالی بودن صفحه جا نخورید)

که با کلیک روی هر آیتم (مثلا اولی) تصویر زیر رو خواهیم داشت

یه پروژه web app تو vs ایجاد میکنیم تا این گالری ایجاد شده توسط ترم افزار رو واردش کنیم
فایلهای پابلیش شده (به جز ico.) رو درگ کنید رو اسم پروژه تا همه اونها به پروژه اضافه بشن

میخوایم این گالری رو تو صفحه default.aspx نمایش بدیم. فایل index.htm رو باز کنید و از بخش head قسمتی زیر رو کپی و توی قسمت head صفحه دیفالت Paste کنید

<link rel="stylesheet" href="engine/css/vlightbox.css" type="text/css" />
<style type="text/css">
#vlightbox a#vlb
{
display: none;
}
</style>
<link rel="stylesheet" href="engine/css/visuallightbox.css" type="text/css" media="screen" />
<script src="engine/js/jquery.min.js" type="text/javascript"></script
البته میتونید اون تگ style رو هم به فایل vlightbox.css اضافه کنید و اون بخش رو از head حذف کنید تا بخش هد یه کم تمیزتر بشه. یعنی شکل نهایی بخش head بشه این شکلی

<link rel="stylesheet" href="engine/css/vlightbox.css" type="text/css" />
<link rel="stylesheet" href="engine/css/visuallightbox.css" type="text/css" media="screen" />
<script src="engine/js/jquery.min.js" type="text/javascript"></script>
از بخش Body فایل index هم تگ

<div id="vlightbox">
</div>
رو به همراه تمام محتویات داخلش، تو تگ form صفحه default قرار بدید، ولی بخش زیر رو از اون حذف کنید

a id="vlb" href="http://visuallightbox.com">Web
Photo Display by VisualLightBox.com v3.1</a>
خصوصیت bgcolor مربوط به body رو هم تو صفحه default ست کنید
الان اگه صفحه default رو اجرا کنید باید گالری عکس نمایش داده بشه.
قالب کلی این گالری تو بخش body به صورت زیر هستش

<div id="vlightbox">
<a class="vlightbox" href="data/images/01.jpg" title="">
<img src="data/thumbnails/01.jpg" alt="" />
</a>
</div>
پس واسه ساخت آیتمهای این گالری به صورت داینامیک، کافیه قسمت head رو به همون صورت که گفته شد، ست کنیم و بخشی که بین تگ div بالا گفته شد رو به ازای هر عکس تکرار کنیم (مثلا به ازای فایلهایی که تو پوشه thumbnails قرار دارن، یا به ازای هر آیتم تو فایل Xml یا به ازای هر رکورد تو جدول مورد نظر تو دیتابیس)
اما واسه بخش 2 (دریافت آیتمها از فایل xml)
اول یه فایل xml با اسم مثلا ImageGalleryItems ایجاد میکنیم (من اینجا خصوصیت alt و title رو هم با اسم عکس ست میکنم. شما میتونید به فایل xml زیر attribute هایی مثلا با اسم alt و title اضافه کنید و مقدار اونها رو برای هر تصویر ست کنید)
قالب فایل xml ما به این صورته

<images>
<image name="01.jpg" />
<image name="02.jpg" />
</images>و هر چندتا عکس که داریم تو این لیست قرار میدیم و هر چی آیتم بین تگ

<div id="vlightbox">
قرار داره رو پاک میکنیم و به جای اونها یک Literal قرار میدیم. یعنی این تگ تو بخش body باید به صورت زیر باشه

<div id="vlightbox">
<asp:Literal ID="LiteralGallery" runat="server"></asp:Literal>
<script src="engine/js/visuallightbox.js" type="text/javascript"></script>
</div>
بعد یه کلاس ایجاد میکنیم تا آیتمهای فایل xml رو بخونه و یا دستکاری کنه(برای کم و زیاد کردن آیتمها) اینجا فقط خوندنش رو میگم. تابع ReadItems اسم تصاویر رو از فایل xml میخونه و نتیجه رو به صورت یک لیست که اعضای اون از نوع استرینگ هستن برمیگردونه
این کلاس به صورت زیر هستش (فرض اینه که فایل xml رو کنار فایل default (توی روت) ایجاد کردید

using System.Collections.Generic;
using System.Web;
using System.Xml.Linq;

namespace TestGallery
{
public class ImageGallery
{
private XDocument xmlDoc;
public ImageGallery()
{
xmlDoc = XDocument.Load(HttpContext.Current.Server.MapPath("~/ImageGalleryItems.xml"));
}

public List<string> ReadItems()
{
List<string> result = new List<string>();
foreach (XElement img in xmlDoc.Element("images").Elements("image"))
{
result.Add(img.Attribute("name").Value);
}
return result;
}
}
}
و در آخر برای اینکه تگهای مورد نظر رو توسط مقدار برگشتی تابع ReadItems ایجاد کنیم، تو Page_Load صفحه Default کدهای زیر رو قرار میدیم

using System;
using System.Text;
using System.Web.UI;

namespace TestGallery
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
LiteralGallery.Text = string.Empty;
StringBuilder createGallery = new StringBuilder();
ImageGallery gallery = new ImageGallery();
foreach (string item in gallery.ReadItems())
{
createGallery.Append("<a class=\"vlightbox\" href=\"data/images/" + item + "\" title=\"" + item + "\"> \r\n");
createGallery.Append("<img src=\"data/thumbnails/" + item + "\" alt=\"" + item + "\" />");
createGallery.Append("</a>");
}
if (!string.IsNullOrEmpty(createGallery.ToString()))
LiteralGallery.Text = createGallery.ToString();
}
}
}
}
آموزش ساخت سرور کنترل، براساس همین چیزهایی که گفته شد رو اگه وقت کردم تو 2،3 روز آینده به ادامه همین مطلب اضافه میکنم

jaykob
دوشنبه 27 تیر 1390, 12:30 عصر
سلام دوست عزیز

ممنون از آموزشتون . اگر امکان داره یک آموزش جهت ساختن thumbnails هم بدهید .
همچنین نحوه خواندن اطلاعات از دیتابیس که اون بخش alt یا توضیحات هم از دیتابیس خوانده شود .

ممنون

Himalaya
دوشنبه 27 تیر 1390, 16:55 عصر
سلام.
بحث ایجاد thumb و استفاده از دیتابیس، تو فایل ضمیمه شده تو این پست اورده شده.
اینجا، همون کار پست 1 رو میخوایم انجام بدیم (ایجاد گالری داینامیک توسط jquery) ، ولی با چندتا تفاوت
1. استفاده از دیتابیس اکسس (برای اینکه راحت اجرا بشه (راحتی در برابر sql نه xml) به جای فایل xml
2. دیگه از تصاویر thumb که نرم افزار visual light box برامون ایجاد میکرد خبری نیست و در عوض خودمون اونا رو ایجاد میکنیم (پس دیگه احتیاجی به پوشه thumbnails نیست)
ایجاد تصاویر thumb به 2 صورت امکان داره.
الف: موقع ذخیره تصویر با سایز اصلی، یه تصویر با سایز کوچیک هم ذخیره بشه که فکر میکنم تو این تاپیک (http://barnamenevis.org/showthread.php?276295-%DA%A9%D9%84%D8%A7%D8%B3%DB%8C-%D8%A8%D8%B1%DB%8C-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%B3%D8%A7%DB%8C%D8%AA&highlight=) و چند تا تاپیک دیگه در موردش گفته شده
ب: فقط تصویر سایز اصلی ذخیره میشه و موقع اجرای صفحه، توسط handler به صورت runtime تصویر thumb ایجاد میشه (تو این پست از این روش استفاده کردم).
یعنی ما مثلا یه تصویر jpg با سایز 250*167 به این صورت داریم (این تصویر میتونه هر سایزی باشه)

http://amir-ajorlo.ir/MyUpFile/barnamenevis/thumb1.jpg

و یک تصویر قاب با فرمت png و با سایز 160*120 به این صورت

http://amir-ajorlo.ir/MyUpFile/barnamenevis/Frame.png

بعد توسط هندلر، این قاب رو همراه با یه متن (که هر دوشون اختیاری هستن)، روی اون تصویر قبلی (البته با سایز 160*120) قرار میدیم که خروجی میشه این تصویر

http://amir-ajorlo.ir/MyUpFile/barnamenevis/FrameOver.jpg

در مورد نحوه عملکرد هم پروژه رو دانلود کنید. تو db توی ستون Name فقط اسم تصویر ذخیره میشه (مثلا 01) و هر جا که تصویر اصلی رو خواستیم از "src="data/images/01.jpg (با مسیر)و هر جا تصویر thumb رو
خواستیم از "src="01.thumb (بدون مسیر) استفاده میکنیم . هندلر مربوطه، به فایلهایی که با پسوند thumb. درخواست میشن، پاسخ میده. هندلر باید تو فایل web.config رجیستر شده باشه

sg.programmer
سه شنبه 28 تیر 1390, 23:29 عصر
آیا اگه از برنامه رجیستر نشده اش استفاده بشه نام سایت روی عکس قرار میگیره
و چه محدودیت های دیگه داره

Himalaya
سه شنبه 28 تیر 1390, 23:56 عصر
سلام

آیا اگه از برنامه رجیستر نشده اش استفاده بشه نام سایت روی عکس قرار میگیره
و چه محدودیت های دیگه داره
ببینید، نرم افزار visual light box (تو حالت رجیستر نشده) وقتی آلبومی رو میسازه، خودش میاد به تصاویری که توش import کردید یه سری متن (همون اسم سایتش) رو اضافه میکنه و بعد تصاویر جدید رو به پوشه image اضافه میکنه. شما کافیه بعد از پابلیش، حودتون فایلهای اصلی که به نرم افزار دادید رور به جای تصاویر داخل پوشه image جایگزین کنید. اینطوری دیگه اون آدرس سایت رو عکسها دیده نمیشه. جاوا اسکریپتش رو هم که به راحتی میشه دستکاری کرد تا تنظیمات دلخواه خودمون رو بهش اعمال کنیم که موقع ایجاد سرور کنترل بهش اشاره میکنم

jaykob
چهارشنبه 29 تیر 1390, 10:41 صبح
آیا اگه از برنامه رجیستر نشده اش استفاده بشه نام سایت روی عکس قرار میگیره
و چه محدودیت های دیگه داره

سلام

در تکمیل گفته های دوستمون می تونید اسم سایت رو داخل پوشه engine و js و فایل visuallightbox نام سایتش رو سرچ کنید و به نام دلخواه تغییر بدید و یا برش دارید .

jaykob
یک شنبه 02 مرداد 1390, 18:26 عصر
سلام

تو این حالتی که شما فرمودید به چه شکل می تونیم صفحه بندی انجام بدیم چون داخل هر صفحه ای می شه 10 تا عکس نشون داد .

ممنون

Himalaya
یک شنبه 02 مرداد 1390, 19:09 عصر
سلام
چرا 10 تا؟ من جایی تعداد عکسها رو محدود نکردم. اگه حس تایپ کردن (حس هفتم) باشه نحوه صفحه بندی رو هم میگم، کار خاصی نداره

jaykob
یک شنبه 02 مرداد 1390, 20:00 عصر
سلام
چرا 10 تا؟ من جایی تعداد عکسها رو محدود نکردم. اگه حس تایپ کردن (حس هفتم) باشه نحوه صفحه بندی رو هم میگم، کار خاصی نداره

ممنون دوست عزیز

10 تا واسه حجم گفتم که کاربر باز می کنه سنگین نشه زیاد صفحه . آره همین بحث صفحه رو اگر وقت کردید و بفرمایید ممنون می شم

با تشکر

Himalaya
دوشنبه 10 مرداد 1390, 19:02 عصر
سلام
اینم گالری عکسی با قابلیت صفحه بندی و تنظیم تعداد آیتمها در هر صفحه

73180

fakhravari
سه شنبه 17 آبان 1390, 02:20 صبح
با سپاس فراوان
کرک نیست:ناراحت:
TestGallery

Himalaya
سه شنبه 17 آبان 1390, 03:24 صبح
کرک؟؟؟!!!!!!!!!!!!!!

fakhravari
سه شنبه 17 آبان 1390, 04:53 صبح
نه ببخشد
روی عکس ها یه ادرس سایت بود فکر کردم کرک نداره .
رفتم عکسها رو دیدم تا لینکه خود عکس:گیج:

sashadianati
جمعه 20 آبان 1390, 23:47 عصر
کاشکی آموزش رو با php هم میدادین

davood59
سه شنبه 06 دی 1390, 09:26 صبح
دوست عزیز؛ جناب karaji333
ضمن تشکر مجدد از شما؛ من میخواستم طبق راهنمایی شما یه جوری درست کنم که بتونم از بانک هم بخونم.
اومدم و فایل xml رو هم ایجاد کردم و سعی کردم طبق راهنمایی شما جلو برم.
حالا وقتی که اجرا می کنم با پیام خطای زیر مواجه میشم:

http://up98.org/upload/server1/01/z/zktpj1fl4rtlgh1absd.jpg


امکانش هست بگید ایراد کار از کجاست؟
راستش رو بخواین چون دیدم بعد از ایجاد شاخه های مورد نظر توسط نرم افزار عدد 1 رو به انتهای پوشه ها اضافه کرده من هم در جاهایی که احساس کردم نیازه، این عدد رو وارد کردم ولی نشد، امکانش هست ایراد پروژه من رو بگید؟
ممنونم ازتون

fakhravari
سه شنبه 06 دی 1390, 11:49 صبح
یه مثال
http://barnamenevis.org/showthread.php?317497-%D8%A7%D8%B3%D9%84%D8%A7%DB%8C%D8%AF-%D8%B4%D9%88-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AF%D8%A7%D9%86%D9%84%D9%88%D8%AF

davood59
سه شنبه 06 دی 1390, 12:29 عصر
ممنون آقای فخرآوری؛
خطای برنامه رو نتونستید تشخیص بدید؟

fakhravari
سه شنبه 06 دی 1390, 14:04 عصر
متاسفانه نه.
ولی من سمپل karaji333 (http://barnamenevis.org/member.php?53563-karaji333) باز کردم بدون error باز شد.
احتمالا در تصویر هم پیداست نسخه 2005 استفاده میکنید که این برنامه 2008 است و باید تبدیل بشه به 2005

Himalaya
سه شنبه 06 دی 1390, 18:09 عصر
سلام.
1. تو بخش کدای Html تو خط اول مقدار _Default واسه خصوصیت Inherits شناخته شده نیست. اونو به صورت TestGallery._Default ست کنید
2. چون از وب سایت استفاده کردید، نه وب اپلیکیشن، پس کلاس ImageGallery (فایل ImageGallery.cs) رو تو پوشه App_Code قرار بدید
با این کارا ایراد پروژتون رفع میشه ولی اسلایدرتون کار نمیکنه، که به احتمال زیاد دلیلش قسمت زیره

راستش رو بخواین چون دیدم بعد از ایجاد شاخه های مورد نظر توسط نرم افزار عدد 1 رو به انتهای پوشه ها اضافه کرده من هم در جاهایی که احساس کردم نیازه، این عدد رو وارد کردم ولی نشد
علاوه بر پوشه ها، شما استایل (vlightbox1) و id تگ دایو رو تغییر دادید که این باعث شده اون تگ و استایلها دیگه توسط جاوا شناخته نشن
نمونه هایی که قرار دادم رو یه بار دیگه نگاه کنید و مطابق همون پیش برید

davood59
سه شنبه 06 دی 1390, 20:31 عصر
دوست عزیزم؛
از راهنماییتون بینهایت سپاسگزار و ممنونم.
ببنید با توجه به اینکه اسم پروژه من website9 هستش مورد اول رو اینجوری تغییرش دادم؛آیا درسته؟

http://up98.org/upload/server1/01/z/8grq9mow9px2ej92ex5.jpg


خط اول رو به شرح زیر تغییرش دادم:


<%@ Page Language="C#‎‎" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="website9._Default" %>

علاوه بر پوشه ها، شما استایل (vlightbox1) و id تگ دایو رو تغییر دادید که این باعث شده اون تگ و استایلها دیگه توسط جاوا شناخته نشناین مورد رو من اصلا دست نزدم؛ برای اینکه کلا عدد یک به انتها اضافه نشه راهی نیست؟

Himalaya
چهارشنبه 07 دی 1390, 00:23 صبح
ببنید با توجه به اینکه اسم پروژه من website9 هستش مورد اول رو اینجوری تغییرش دادم؛آیا درسته؟نه. درست نیست. code behind صفحه دیفالت شما namespace داره. پس تو قسمت Inherits قبل از اسم کلاس یاید این Namespace آورده بشه

Inherits="TestGallery._Default"
پست قبلیم رو با توجه به مثال شما زدم. مثل همون که گفتم عمل کن


این مورد رو من اصلا دست نزدم؛ برای اینکه کلا عدد یک به انتها اضافه نشه راهی نیست؟تا اونجایی که یادمه نرم افزار خودش چیزی اضافه نمیکرد

hr_3303
چهارشنبه 07 فروردین 1392, 21:11 عصر
سلام.
بحث ایجاد thumb و استفاده از دیتابیس، تو فایل ضمیمه شده تو این پست اورده شده.
اینجا، همون کار پست 1 رو میخوایم انجام بدیم (ایجاد گالری داینامیک توسط jquery) ، ولی با چندتا تفاوت
1. استفاده از دیتابیس اکسس (برای اینکه راحت اجرا بشه (راحتی در برابر sql نه xml) به جای فایل xml
2. دیگه از تصاویر thumb که نرم افزار visual light box برامون ایجاد میکرد خبری نیست و در عوض خودمون اونا رو ایجاد میکنیم (پس دیگه احتیاجی به پوشه thumbnails نیست)
ایجاد تصاویر thumb به 2 صورت امکان داره.
الف: موقع ذخیره تصویر با سایز اصلی، یه تصویر با سایز کوچیک هم ذخیره بشه که فکر میکنم تو این تاپیک (http://barnamenevis.org/showthread.php?276295-%DA%A9%D9%84%D8%A7%D8%B3%DB%8C-%D8%A8%D8%B1%DB%8C-%DA%A9%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%AA%D8%B5%D8%A7%D9%88%DB%8C%D8%B1-%D8%A2%D9%BE%D9%84%D9%88%D8%AF-%D8%B4%D8%AF%D9%87-%D8%AF%D8%B1-%D8%B3%D8%A7%DB%8C%D8%AA&highlight=) و چند تا تاپیک دیگه در موردش گفته شده
ب: فقط تصویر سایز اصلی ذخیره میشه و موقع اجرای صفحه، توسط handler به صورت runtime تصویر thumb ایجاد میشه (تو این پست از این روش استفاده کردم).
یعنی ما مثلا یه تصویر jpg با سایز 250*167 به این صورت داریم (این تصویر میتونه هر سایزی باشه)

http://amir-ajorlo.ir/MyUpFile/barnamenevis/thumb1.jpg

و یک تصویر قاب با فرمت png و با سایز 160*120 به این صورت

http://amir-ajorlo.ir/MyUpFile/barnamenevis/Frame.png

بعد توسط هندلر، این قاب رو همراه با یه متن (که هر دوشون اختیاری هستن)، روی اون تصویر قبلی (البته با سایز 160*120) قرار میدیم که خروجی میشه این تصویر

http://amir-ajorlo.ir/MyUpFile/barnamenevis/FrameOver.jpg

در مورد نحوه عملکرد هم پروژه رو دانلود کنید. تو db توی ستون Name فقط اسم تصویر ذخیره میشه (مثلا 01) و هر جا که تصویر اصلی رو خواستیم از "src="data/images/01.jpg (با مسیر)و هر جا تصویر thumb رو
خواستیم از "src="01.thumb (بدون مسیر) استفاده میکنیم . هندلر مربوطه، به فایلهایی که با پسوند thumb. درخواست میشن، پاسخ میده. هندلر باید تو فایل web.config رجیستر شده باشه

سلام به شما دوست عزیز.
من این دیتابیس رو بردم توی SQL و توی Web.Config هم تنظیمات رو انجام دادم ولی نمی دونم این تکه کد رو به چه صورتی باید تغییر بدم.ممنون میشم کمکم کنید.


using System;
using System.Text;
using System.Web.UI;
using System.Data.OleDb;
using System.Configuration;

namespace TestGallery
{
public partial class _Default : System.Web.UI.Page
{
private OleDbConnection cn = new OleDbConnection(ConfigurationManager.ConnectionStr ings["MyConnection"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
LiteralGallery.Text = string.Empty;
StringBuilder createGallery = new StringBuilder();
OleDbDataReader reader = null;
OleDbCommand cmd = new OleDbCommand("select * from [tblTest]", cn);
cmd.Parameters.Clear();
try
{
if (cn.State == System.Data.ConnectionState.Closed)
cn.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
createGallery.Append("<a class=\"vlightbox\" href=\"data/images/" + reader.GetString(1) + ".jpg\" title=\"" + reader.GetString(2) + "\"> \r\n");
createGallery.Append("<img src=\"" + reader.GetString(1) + ".thumb\" alt=\"" + reader.GetString(3) + "\" />");
createGallery.Append("</a>");
}
if (!string.IsNullOrEmpty(createGallery.ToString()))
LiteralGallery.Text = createGallery.ToString();
}
catch (Exception)
{
throw;
}
finally
{
if (reader != null)
reader.Close();
cn.Close();
}
}
}
}


با تشکر از شما و همه دوستان این انجمن.

na_des
پنج شنبه 08 فروردین 1392, 21:19 عصر
سلام به شما دوست عزیز.
من این دیتابیس رو بردم توی SQL و توی Web.Config هم تنظیمات رو انجام دادم ولی نمی دونم این تکه کد رو به چه صورتی باید تغییر بدم.ممنون میشم کمکم کنید.


using System;
using System.Text;
using System.Web.UI;
using System.Data.OleDb;
using System.Configuration;

namespace TestGallery
{
public partial class _Default : System.Web.UI.Page
{
private OleDbConnection cn = new OleDbConnection(ConfigurationManager.ConnectionStr ings["MyConnection"].ConnectionString);
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
LiteralGallery.Text = string.Empty;
StringBuilder createGallery = new StringBuilder();
OleDbDataReader reader = null;
OleDbCommand cmd = new OleDbCommand("select * from [tblTest]", cn);
cmd.Parameters.Clear();
try
{
if (cn.State == System.Data.ConnectionState.Closed)
cn.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
createGallery.Append("<a class=\"vlightbox\" href=\"data/images/" + reader.GetString(1) + ".jpg\" title=\"" + reader.GetString(2) + "\"> \r\n");
createGallery.Append("<img src=\"" + reader.GetString(1) + ".thumb\" alt=\"" + reader.GetString(3) + "\" />");
createGallery.Append("</a>");
}
if (!string.IsNullOrEmpty(createGallery.ToString()))
LiteralGallery.Text = createGallery.ToString();
}
catch (Exception)
{
throw;
}
finally
{
if (reader != null)
reader.Close();
cn.Close();
}
}
}
}


با تشکر از شما و همه دوستان این انجمن.

به جای ; using System.Data.OleDb از ;using System.Data.SqlClient استفاده کن و کلاسای OleDbCommand و OleDbConnection و ... را هم تغییر بده

hr_3303
پنج شنبه 08 فروردین 1392, 22:20 عصر
به جای ; using System.Data.OleDb از ;using System.Data.SqlClient استفاده کن و کلاسای OleDbCommand و OleDbConnection و ... را هم تغییر بده

با تشکر از شما دوست خوبم.
دستوراتی که فرموده بودید را انجام دادم ولی بازم متاسفانه خطا میده:
102045
ممنون میشم بازم مثل همیشه بنده رو راهنمایی کنید.متشکرم

Himalaya
پنج شنبه 08 فروردین 1392, 23:04 عصر
سلام
کانکشن استرینگت رو درست کن.
مثلا


<connectionStrings>
<add name="MyConnection" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ElectronicShop;Data Source=."/>
</connectionStrings>

بخش name و Catalog رو واسه برنامت تغییر بده. یوزر پس هم اگه داره اضافه کن.
بازم اگه مشکل داشتی یا با یه فایل udl کانکشن رو به دست بیار یا http://www.connectionstrings.com/ یا ...

hr_3303
جمعه 09 فروردین 1392, 11:07 صبح
سلام
کانکشن استرینگت رو درست کن.
مثلا


<connectionStrings>
<add name="MyConnection" connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ElectronicShop;Data Source=."/>
</connectionStrings>
بخش name و Catalog رو واسه برنامت تغییر بده. یوزر پس هم اگه داره اضافه کن.
بازم اگه مشکل داشتی یا با یه فایل udl کانکشن رو به دست بیار یا http://www.connectionstrings.com/ یا ...

با تشکر از شما دوست عزیز.
کانکشن استرینگ رو چک کردم.مشکلی نداره.توی TestGallery.csproj چند خطی هست که فکر کنم باید تغییرش بدیم:


<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Core" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Drawing" />
<Reference Include="System.Web" />
<Reference Include="System.Xml" />
<Reference Include="System.Configuration" />
<Reference Include="System.Web.Services" />
<Reference Include="System.EnterpriseServices" />
<Reference Include="System.Web.Mobile" />
</ItemGroup>
<ItemGroup>
<Content Include="App_Data\Database1.mdb" />
<Content Include="data\Frame.png" />
<Content Include="data\images\01.jpg" />
<Content Include="data\images\02.jpg" />
<Content Include="data\images\03.jpg" />
<Content Include="data\images\04.jpg" />
<Content Include="data\images\05.jpg" />
<Content Include="data\images\06.jpg" />
<Content Include="data\images\07.jpg" />
<Content Include="data\no image.jpg" />
<Content Include="Default.aspx" />
<Content Include="engine\css\visuallightbox.css" />
<Content Include="engine\css\vlightbox.css" />
<Content Include="engine\images\back_cb.png" />
<Content Include="engine\images\back_corvers.png" />
<Content Include="engine\images\back_ct.png" />
<Content Include="engine\images\back_lb.png" />
<Content Include="engine\images\back_lc.png" />
<Content Include="engine\images\back_lr.png" />
<Content Include="engine\images\back_lt.png" />
<Content Include="engine\images\back_rb.png" />
<Content Include="engine\images\back_rc.png" />
<Content Include="engine\images\back_rt.png" />
<Content Include="engine\images\back_tb.png" />
<Content Include="engine\images\close.gif" />
<Content Include="engine\images\loading.gif" />
<Content Include="engine\images\navigation.gif" />
<Content Include="engine\images\next.gif" />
<Content Include="engine\images\next.png" />
<Content Include="engine\images\prev.gif" />
<Content Include="engine\images\prev.png" />
<Content Include="engine\js\jquery.min.js" />
<Content Include="engine\js\visuallightbox.js" />
<Content Include="Web.config" />
<Content Include="Web.Debug.config">

به نظر شما نباید این چند خط تغییر کنه.
آقای Karaji333 بنده از شما یه خواهشی دارم.اگر امکان داره یه لطفی کنید و این پروژه رو به sql خودتون تغییر بدید.من روی یه برنامه ایی گیر کردم که این پروژه شما خیلی به کارم میاد.ممنون میشم این زحمت رو بکشید.
با تشکر از آقای Karaji333 و تمامی دوستان در این انجمن.

Himalaya
جمعه 09 فروردین 1392, 14:17 عصر
سلام
TestGallery.csproj رو شما نباید تغییر بدید. تشخیص اینکه اون تو چیا باید باشه رو بزارید به عهده خود vs


اگر امکان داره یه لطفی کنید و این پروژه رو به sql خودتون تغییر بدید

متاسفانه وقت این کارو ندارم. با اکسس و xml پروژه قرار دادم. مطمئنا تبدیلش به sql اصلا کار مشکلی نیست.

موفق باشید

hr_3303
شنبه 10 فروردین 1392, 00:44 صبح
سلام و تشکر از راهنمایی و پیگیری خوبتون.

<Content Include="App_Data\Database1.mdb" />

به نظر شما نباید اینجا رو تغییرش بدی.چون دیگه فایلش Database1.mdb این نیست.
بازم از شما متشکرم

Himalaya
شنبه 10 فروردین 1392, 01:18 صبح
سلام

به نظر شما نباید اینجا رو تغییرش بدی.چون دیگه فایلش Database1.mdb این نیست.
وقتی از تو سولوشن فایل Database1.mdb رو از پوشه App_Data جذف کنی و پروژه رو 1 بار Build کنی اون خط خودش حذف میشه. لازم نیست شما خودت دستی حذفش کنی

عزیز من یه پروژه جدید ایجاد کن بعد یه ارتباط درست با بانک اسکیوالت برقرار کن و تو ادامه فایل هایی که لازمه منتقل کن توش.
باور کن 20 روز (زیاد گفتم البته) با asp.net سرو کله زده باشی میتونی راه بندازی اینو. کپی پست کردن چند خط کد که اینهمه سوالو جواب نمیخواد اخه.

موفق باشی

hr_3303
پنج شنبه 15 فروردین 1392, 12:48 عصر
سلام

وقتی از تو سولوشن فایل Database1.mdb رو از پوشه App_Data جذف کنی و پروژه رو 1 بار Build کنی اون خط خودش حذف میشه. لازم نیست شما خودت دستی حذفش کنی

عزیز من یه پروژه جدید ایجاد کن بعد یه ارتباط درست با بانک اسکیوالت برقرار کن و تو ادامه فایل هایی که لازمه منتقل کن توش.
باور کن 20 روز (زیاد گفتم البته) با asp.net سرو کله زده باشی میتونی راه بندازی اینو. کپی پست کردن چند خط کد که اینهمه سوالو جواب نمیخواد اخه.

موفق باشی

سلام آقای Karaji333 .مشکل من با راهنمایی شما و دوست خوبم آقای Atbin2010 (با تشکر فراوان) حل.شد.مشکل این بود که باید Open Project میکردم نه Open web site .
حالا جناب آقای Karaji333 زمانی که توی asp اجرا میکنم مشکلی ندارم ولی زمان آپلود به این صورت نمایش میده:
102284
ممنون میشم بنده رو راهنمایی کنید .با تشکر از شما دوست عزیز

hr_3303
دوشنبه 19 فروردین 1392, 10:03 صبح
سلام آقای Karaji333 .مشکل من با راهنمایی شما و دوست خوبم آقای Atbin2010 (با تشکر فراوان) حل.شد.مشکل این بود که باید Open Project میکردم نه Open web site .
حالا جناب آقای Karaji333 زمانی که توی asp اجرا میکنم مشکلی ندارم ولی زمان آپلود به این صورت نمایش میده:
102284
ممنون میشم بنده رو راهنمایی کنید .با تشکر از شما دوست عزیز

دوستان لطفا کمکم کنید.دقیقا همین برنامه رو زمانی که با نرم افزار VS2010 اجرا میکنم مشکلی نداره ولی وقتی آپلود میکنم مثل عکس بالا اجرا میشه.
ممنون میشم یکی از دوستان بنده رو راهنمایی کنه.

hr_3303
دوشنبه 19 فروردین 1392, 19:42 عصر
آقا استادان این انجمن با من قهر کردند:ناراحت::ناراحت::ناراح ::ناراحت::ناراحت:.چرا هیچ کس جواب نمی ده.:متعجب::متعجب::متعجب::متعج ب::متعجب::متعجب::متعجب:
لطفا منو کمک کنید.من خیلی به این برنامه نیاز دارم

ashkan.890
جمعه 01 آذر 1392, 23:26 عصر
سلام

چجوری باید گالری رو رجیستر کرد تو web.config؟
من این گالری رو تو برنامم استفاده کردم همه چیش درست کار میکنه جز thumb ها
یعنی عکس thumb ها رو لود نمیکنه
امکانش هست به خاطر رجیستر نشدن باشه ؟؟