سلام.من میخوام وقتی کاربر توسط آپلودر عکسی را انتخاب میکند برای اولین بار که روی دکمه ثبت کلیک کرد این عکس جدید که انتخاب کرده بره بشینه جای اولین عکس اگر دوباره انتخاب کرد برای با دم بره بشینه جای عکس دومی.در ضمن عکس فقط دوتا نیس بنا به تعرفه کاربر که خریداری کرده میتونه یکی باشه دوتا باشه و چندتا باشه .حالا نمیدونم اینو چجوری بنویسم اگر کمکم کنید ممنون میشم.
کد مربوط به نمایش عکس ها
SqlDataReader dr = postimage.GetPostImages("sp_Select_PostImage", pi); int[] imageid=new int[20]; int imagecount = 0; string[] url = new string[20]; int count = 0; while (dr.Read()) { url[count] = dr["ImageUrl"].ToString(); imageid[imagecount] = Convert.ToInt32(dr["ImgId"].ToString()); count++; imagecount++; } ViewState.Add("count", imagecount); dr.Close(); for (int i = 0; i < count; i++) { string path = url[i].Substring(1); Response.Write("<img alt='' src=" + path + " id='img" + imageid[i] + "' /> "); }
اینم کد مربوط به تعویض عکس که اینجا موندم چجوری آی دی عکسی که انتخاب میکنم رو به دست بیارم
if (fuEditAghahi.HasFile) { string path = "/UserUploaded/" + DateTime.Now.Millisecond + fuEditAghahi.PostedFile.FileName; fuEditAghahi.SaveAs(Server.MapPath(path)); pi.ImageUrl = path; } pi.ImgId = این قسمت نمیدونم چجوری بنویسم string result = pcu.SaveImage("sp_Save_Image_EditAghahi", pi); msg.Style.Add("display", "block"); spanmsg.InnerText = result+"<br />"+ pi.ImgId;
اگر عکس را با نام عکس قبلی ذخیره کنید روی عکس قبلی ذخیره میشه
برای اطمینان میتونید اول عکس قبلی رو حذف کنید و بعد جدید را آپلود کنید
مشکل اینجاس که من برای اینکه بخوام عکس جدید رو روی قبلی ذخیره کنم باید آی دی عکس (آی دی مربوط به دیتابیس) رو در دست داشته باشم که البته اونارو توی یه آرایه ذخیره کردم(یه جدول دارم بنام آگهی و یه جدول هم دارم که ایمیج های مربوط به هر آگهی در اون جدول هست)
(tbl_Images(id,url,aghahiid
int[] imageid=new int[20];
حالا وقتی که میخوام در طرف کدبیهایند بگم که برو روی این
ایمیج ذخیره شو احتیاج دارم که این آرایه مربوط به آی دی
ایمیج هارو داشته باشم که بهش دسترسی ندارم چون اونا قسمت
دیزاین قرار دارن نه تو قسمت کد بیهایند.حالا مشکل منم
اینه که چجوری به این آرایه دسترسی داشته باشم تا کنترل
ذخیره ی عکسها دستم باشه
میتونید داخل ViewState نگهداری کنید آرایه رو
اون کارو هم کردم ولی وقتی دکمه ی ثبت رو میزنم تا عکس ذخیره بشه و از اون ویو استیت استفاده میکنم میبینم ویواستیت خالیه مقداری نداره یعنی وقتی دکمه ثبت زده میشه ویو استیت خالی میشه نمیدونم چرا !!!
در رویداد لود صفحه ViewState را پر کردید ؟
باید از !Page.IsPostBack استفاده کنید
نه طرف دیزاین پر کردم چون تولید عکس هام طرف دیزاین هست نه کد بیهایند. توی کد زیر مشخص کردم کجا پرش کردم
SqlDataReader dr = postimage.GetPostImages("sp_Select_PostImage", pi); int[] imageid=new int[20]; int imagecount = 0; string[] url = new string[20]; int count = 0; while (dr.Read()) { url[count] = dr["ImageUrl"].ToString(); imageid[imagecount] = Convert.ToInt32(dr["ImgId"].ToString()); //اینجا به جای آرایه تو ویو استیت گذاشتم آی دی عکس هارو ولی تو طرف کد نویسی خالیه با اینکه اینجا پرش کردم count++; imagecount++; } ViewState.Add("count", imagecount); dr.Close(); for (int i = 0; i < count; i++) { string path = url[i].Substring(1); Response.Write("<img alt='' src=" + path + " id='img" + imageid[i] + "' /> ");
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)