PDA

View Full Version : یک اسلایدر زیبا



korosh00
یک شنبه 17 آذر 1392, 15:35 عصر
113675

سلام من این اسلایدر را دارم می خوام به دیتابیس وصل بشه .
میشه داخلش از رپیتر استفاده کرد و به دیتابیس متصل بشه .
من نمونه ها دیگه دارم و تونستم همه را که با رپیتر بودند به دیتابیس وصل کنم ولی این یکی را نتونستم و اتفاقا همین مدل برام مهم است .
ممنون هستند دوستان راهنمایی بفرمایند .

korosh00
یک شنبه 17 آذر 1392, 15:54 عصر
113676

کل فایل را نشد آپلود کنم اون پست قبلی فایل اصلی است . فقط یک پوشه image هست که اینجا گذاشتم توی فایل diapo کپیش کنید .

korosh00
سه شنبه 19 آذر 1392, 04:20 صبح
لطفا دوستان راهنمایی کنند .

ashkan.890
سه شنبه 19 آذر 1392, 04:58 صبح
<div data-thumb="images/thumbs/megamind1048.jpg">
<img src="images/slides/megamind1048.jpg">
<div class="caption elemHover fromLeft">
This is a simple sliding image with caption. You can have more than one caption and decide the layout of the caption via css.
</div>
</div>


این div برای نمایش هر اسلاید
شما باید به جای اینکه ادرس رو مستقیم بدی از دیتا بیس بخونی
باید یه هندلر ایجاد کنی که اطلاعات رو از دیتا بیس بگیره و بده به تگ img

کار با هنلر رو بلدی ؟

korosh00
سه شنبه 19 آذر 1392, 06:10 صبح
نه متاسفانه . لطفا راهنمایی کنید .

ashkan.890
سه شنبه 19 آذر 1392, 07:01 صبح
اول از منوی Add item یک generic handler ادد کن تو برنامت
بعد از کدزیر استفاده کن


public class ImageSlider : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
context.Response.Clear();

if (!String.IsNullOrEmpty(context.Request.QueryString["id"]))
{
int id = Int32.Parse(context.Request.QueryString["id"]);

Image image = GetImage(id);

context.Response.ContentType = "image/jpeg";
image.Save(context.Response.OutputStream, ImageFormat.Jpeg);
}
else
{
context.Response.ContentType = "text/html";
context.Response.Write("<p>Need a valid id</p>");
}
}

public bool IsReusable
{
get
{
return false;
}
}

private Image GetImage(int id)
{

MemoryStream memoryStream = new MemoryStream();
//Retrieve image from Database to a memeory stream.
// If you are using a different method, use it and assign
// the data to the 'memoryStream' variable.

string connectionString = "Data Source=(local);Initial Catalog=DB1;Integrated Security=True";
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
using (SqlCommand sqlCommand = new SqlCommand("SELECT Img FROM Slider WHERE ID = " + id.ToString(), sqlConnection))
{
sqlConnection.Open();
SqlDataReader sqlDataReader = sqlCommand.ExecuteReader();

if (sqlDataReader.HasRows)
{
sqlDataReader.Read();
byte[] btImage = (byte[])sqlDataReader["Img"];

memoryStream = new MemoryStream(btImage, false);
}
}
sqlConnection.Close();
}
return Image.FromStream(memoryStream);
}
}



حالا به src تگ img اینطوری ادرس بده
src="handlerName.ashx?id=your image id"

ashkan.890
سه شنبه 19 آذر 1392, 07:02 صبح
اگه سوالی داشتی بازم بپرس

korosh00
سه شنبه 19 آذر 1392, 12:18 عصر
سلام
این کد را داخل همون handler بگذارم . یا قسمت کد صفحه اسلایدر ؟
من تو هر دو گذاشتم تست کردم عکس ها نیاورد نمایش بده !

korosh00
سه شنبه 19 آذر 1392, 14:00 عصر
این خط را ارور می ده

byte[] btImage = (byte[])sqlDataReader["Img"];

ashkan.890
سه شنبه 19 آذر 1392, 14:43 عصر
جای img باید اسم فیلد عکستو بنویسی

byte[] btImage = (byte[])sqlDataReader["Img"];


آره باید تو هندلر بزاری
به تگ img آدرس دادی ؟؟

korosh00
سه شنبه 19 آذر 1392, 16:11 عصر
همه این کارا رو کردم . نشد که نشد ....

korosh00
سه شنبه 19 آذر 1392, 16:13 عصر
این کل کد صفحه من است :






using

System;



using

System.Web;


using
System.IO;

using

System.Drawing.Drawing2D;

using

System.Drawing.Imaging;

using
System.Data.OleDb;

using
System.Web.UI;

public


classHandler : IHttpHandler

{







publicvoid ProcessRequest(HttpContext context)

{

context.Response.Clear();







if (!String.IsNullOrEmpty(context.Request.QueryString["id"]))

{







int id = Int32.Parse(context.Request.QueryString["id"]);

Image image = GetImage(id);

context.Response.ContentType =





"image/jpeg";

image.Save(context.Response.OutputStream,





ImageFormat.Jpeg);

}







else

{

context.Response.ContentType =





"text/html";

context.Response.Write(





"<p>Need a valid id</p>");

}

}







publicbool IsReusable

{







get

{







returnfalse;

}

}







private Image GetImage(int id)

{







MemoryStream memoryStream = newMemoryStream();





//Retrieve image from Database to a memeory stream.





// If you are using a different method, use it and assign





// the data to the 'memoryStream' variable.





string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=admin;Data Source=|DataDirectory|\\site.mdb";

 







using (OleDbConnection con = newOleDbConnection(connectionString))

{







using (OleDbCommand sqlCommand = newOleDbCommand("SELECT aks1 FROM Slider WHERE ID = " + id.ToString(), con))

{

con.Open();







OleDbDataReader sqlDataReader = sqlCommand.ExecuteReader();





if (sqlDataReader.HasRows)

{

sqlDataReader.Read();







byte[] btImage = (byte[])sqlDataReader["aks1"];

memoryStream =





newMemoryStream(btImage, false);

}

}

con.Close();

}







return Image.FromStream(memoryStream);

}

}

korosh00
سه شنبه 19 آذر 1392, 16:17 عصر
این قسمت را هم ارور می ده من همه کلاسها را وارد کردم
روی image ارور میده

return Image.FromStream(memoryStream);

ashkan.890
سه شنبه 19 آذر 1392, 17:41 عصر
این قسمت را هم ارور می ده من همه کلاسها را وارد کردم
روی image ارور میده

return Image.FromStream(memoryStream);

از این کد استفاده کن و بزارش جای return Image.FromStream(memoryStream);


Image a = Image.FromStream(memoryStream);
Bitmap bmp = new Bitmap(memoryStream);
return bmp;

korosh00
چهارشنبه 20 آذر 1392, 07:20 صبح
نمیشه
اینم عکس ارورش

113778

ashkan.890
چهارشنبه 20 آذر 1392, 14:29 عصر
دیتا بیست اکسس ؟؟
من تاحالا با دیتا بیس اکسس کار نکردم
احتمال زیاد از کاننکشنت
چک کن درست باشه

korosh00
چهارشنبه 20 آذر 1392, 17:05 عصر
شما همین کد را با دیتابیس اس کیو ال می گذاری کار میکنه ؟

ashkan.890
چهارشنبه 20 آذر 1392, 17:16 عصر
بله
من 3 تا هندلر با همین کد ها دارم

Progman.ir
پنج شنبه 21 آذر 1392, 00:02 صبح
اگه خواستی من این کار رو بدون هندلر و ریپیتر و فقط با آرایه ها و SqlDataReader بهت بگم

ashkan.890
پنج شنبه 21 آذر 1392, 03:43 صبح
اگه خواستی من این کار رو بدون هندلر و ریپیتر و فقط با آرایه ها و SqlDataReader بهت بگم
ممنون میشم اگه بگید

korosh00
پنج شنبه 21 آذر 1392, 05:30 صبح
راستی اگر به اسلایدر بخوام عکسیاضافه کنم تو دیتابیس درخود اسلایدر که نمایش نمیده چون من باید بر اساس id خاص عکس را بگیرم !!!
src="handlerName.ashx?id=1"
مثلا این عکس 1 را نمایش میده