مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

morteza1207

عضویت از 1394/04/10

تغییر عکس

  • پنجشنبه 26 شهریور 1394
  • 13:36
تشکر میکنم

سلام.من میخوام وقتی کاربر توسط آپلودر عکسی را انتخاب میکند برای اولین بار که روی دکمه ثبت کلیک کرد این عکس جدید که انتخاب کرده بره بشینه جای اولین عکس اگر دوباره انتخاب کرد برای با دم بره بشینه جای عکس دومی.در ضمن عکس فقط دوتا نیس بنا به تعرفه کاربر که خریداری کرده میتونه یکی باشه دوتا باشه و چندتا باشه .حالا نمیدونم اینو چجوری بنویسم اگر کمکم کنید ممنون میشم.

کد مربوط به نمایش عکس ها


                
             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;

 

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 26 شهریور 1394
  • 14:01

اگر عکس را با نام عکس قبلی ذخیره کنید روی عکس قبلی ذخیره میشه

برای اطمینان میتونید اول عکس قبلی رو حذف کنید و بعد جدید را آپلود کنید

کاربر سایت

morteza1207

عضویت از 1394/04/10

  • پنجشنبه 26 شهریور 1394
  • 21:07

مشکل اینجاس که من برای اینکه بخوام عکس جدید رو روی قبلی ذخیره کنم باید آی دی عکس (آی دی مربوط به دیتابیس) رو در دست داشته باشم که البته اونارو توی یه آرایه ذخیره کردم(یه جدول دارم بنام آگهی و یه جدول هم دارم که ایمیج های مربوط به هر آگهی در اون جدول هست)

(tbl_Images(id,url,aghahiid


 
int[] imageid=new int[20];

 

حالا وقتی که میخوام در طرف کدبیهایند بگم که برو روی این

ایمیج ذخیره شو احتیاج دارم که این آرایه مربوط به آی دی

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

دیزاین قرار دارن نه تو قسمت کد بیهایند.حالا مشکل منم

اینه که چجوری به این آرایه دسترسی داشته باشم تا کنترل

ذخیره ی عکسها دستم باشه

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 27 شهریور 1394
  • 08:13

میتونید داخل ViewState نگهداری کنید آرایه رو

کاربر سایت

morteza1207

عضویت از 1394/04/10

  • جمعه 27 شهریور 1394
  • 11:05

اون کارو هم کردم ولی وقتی دکمه ی ثبت رو میزنم تا عکس ذخیره بشه و از اون ویو استیت استفاده میکنم میبینم ویواستیت خالیه مقداری نداره یعنی وقتی دکمه ثبت زده میشه ویو استیت خالی میشه نمیدونم چرا !!!

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 27 شهریور 1394
  • 12:58

در رویداد لود صفحه ViewState را پر کردید ؟

باید از !Page.IsPostBack استفاده کنید

کاربر سایت

morteza1207

عضویت از 1394/04/10

  • شنبه 28 شهریور 1394
  • 14:51

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

 

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] + "' /> ");

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)