PDA

View Full Version : سوال: رفرش کردن گرید ویو



mashhadpix
جمعه 26 اردیبهشت 1393, 19:39 عصر
سلام به همگی
من یه پنل ساده مدیریت عکس آماده کردم ولی وقتی برای ویرایش می روم عکس جدیدی انتخاب می کنم و دکمه ثبت را میزنم ویرایش انجام می شود ولی در gridview به من نشان نمی دهد. فقط برای عکس مشکل به وجود آمده است. این در حالی است که در پوشه عکس همه چی درست است عکس جدید جایگزین شده است و با یک بار رفرش مرورگر درست کار می کند.
دکمه ثبت برای ثبت رکورد جدید و ویرایش:

protected void btnsave_Click(object sender, EventArgs e)
{
if (ViewState["ID"] == null)
{
string ImageName = "NoImage.png";
if (FUImage.HasFile)
{
ImageName = Guid.NewGuid().ToString().Replace("-", "") + ".jpg";
FUImage.SaveAs(Server.MapPath("/zukker/images/SlideShow/Image/" + ImageName));
ImageResizer img = new ImageResizer();
img.Resize(Server.MapPath("/zukker/images/SlideShow/Image/" + ImageName),
Server.MapPath("/zukker/images/SlideShow/Thumb/" + ImageName));

}
SlideShows ss = new SlideShows()
{
SlideTitle = txtTitle.Text,
SlideText = txtText.Text,
SlideImage = ImageName
};
Context.SlideShows.AddObject(ss);
Context.SaveChanges();
GridView1.DataBind();
}
else
{
int ID = int.Parse(ViewState["ID"].ToString());
var SlideShow = (from ss in Context.SlideShows
where ss.SlideShowID == ID
select ss).First();
SlideShow.SlideTitle = txtTitle.Text;
SlideShow.SlideText = txtText.Text;
string ImageName = SlideShow.SlideImage;

if (FUImage.HasFile)
{
if (ImageName != "NoImage.png")
{
FUImage.SaveAs(Server.MapPath("/zukker/images/SlideShow/Image/" + ImageName));
ImageResizer img = new ImageResizer();
img.Resize(Server.MapPath("/zukker/images/SlideShow/Image/" + ImageName),
Server.MapPath("/zukker/images/SlideShow/Thumb/" + ImageName));
}
else
{
ImageName = Guid.NewGuid().ToString().Replace("-", "") + ".jpg";
FUImage.SaveAs(Server.MapPath("/zukker/images/SlideShow/Image/" + ImageName));
ImageResizer img = new ImageResizer();
img.Resize(Server.MapPath("/zukker/images/SlideShow/Image/" + ImageName),
Server.MapPath("/zukker/images/SlideShow/Thumb/" + ImageName));
}

}
SlideShow.SlideImage = ImageName;
Context.SaveChanges();
GridView1.DataBind();
}
GridView1.DataBind();
MultiView1.SetActiveView(View1);
Response.Redirect(Request.Url.AbsoluteUri);
}


و رویداد RowCommand گرید ویو برای ویرایش و حذف:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
switch (e.CommandName)
{

case "DoEdit":
{
int ID = int.Parse(e.CommandArgument.ToString());
var SlideShow = Context.SlideShows.First(ss => ss.SlideShowID == ID);
txtTitle.Text = SlideShow.SlideTitle;
txtText.Text = SlideShow.SlideText;
ImageSlide.ImageUrl = "/zukker/images/SlideShow/Thumb/" + SlideShow.SlideImage;
ViewState["ID"] = ID;
MultiView1.SetActiveView(View2);
GridView1.DataBind();
break;
}
case "DoDelete":
{
int ID = int.Parse(e.CommandArgument.ToString());
var SlideShow = Context.SlideShows.First(ss => ss.SlideShowID == ID);
if (SlideShow.SlideImage != "NoImage.png")
{
System.IO.File.Delete(Server.MapPath("/zukker/images/SlideShow/Image/" + SlideShow.SlideImage));
System.IO.File.Delete(Server.MapPath("/zukker/images/SlideShow/Thumb/" + SlideShow.SlideImage));
}
Context.SlideShows.DeleteObject(SlideShow);
Context.SaveChanges();
GridView1.DataBind();
break;
}
}
}



ممنون میشم پاسخگو باشید

rezadana
شنبه 27 اردیبهشت 1393, 01:54 صبح
سلام دوست کد زیر رو باید بعد از ویرایش مطلبت هم اضاف کنی.



Response.Redirect(Request.Url.AbsoluteUri);






ــــــــــــــــــــــــ
www.rezalynda.rzb.ir

mashhadpix
شنبه 27 اردیبهشت 1393, 20:44 عصر
سلام دوست کد زیر رو باید بعد از ویرایش مطلبت هم اضاف کنی.

Response.Redirect(Request.Url.AbsoluteUri);






ــــــــــــــــــــــــ
www.rezalynda.rzb.ir (http://www.rezalynda.rzb.ir)


من این کد را بعد else اضافه کردم ولی جواب نداد. ممنون میشم راهنمایی کنید دقیقا باید کجا اضافه کنم.

meysam99
شنبه 27 اردیبهشت 1393, 22:01 عصر
سلام.
اگه فقط به یک رفرش احتیاج داره
به نامی که دادی یک عدد بصورت رندوم اضافه کن مشکل حل می شود. یعنی نام فایل رو بعد از ویرایش تغییر بده تا دیگه مرورگر کش نکنه.

mashhadpix
شنبه 27 اردیبهشت 1393, 22:08 عصر
چطوری ؟ میشه توضیح بدید؟
ممنون میشم

meysam99
شنبه 27 اردیبهشت 1393, 22:13 عصر
در اون قسمت که عکس را آپدیت می کنی یک انتخاب از بانک انجام می دهی و دوباره عکس را به همان نام ذخیره می کنی در این قسمت


if (ImageName != "NoImage.png") {
FUImage.SaveAs(Server.MapPath("/zukker/images/SlideShow/Image/" + ImageName));
ImageResizer img = new ImageResizer();
img.Resize(Server.MapPath("/zukker/images/SlideShow/Image/" + ImageName),
Server.MapPath("/zukker/images/SlideShow/Thumb/" + ImageName));

}



ImageName را در اینجا تغییر بده. البته من خیلی سریع کد را نگاه کردم . ولی مشکل باید همینجا باشد

mashhadpix
یک شنبه 28 اردیبهشت 1393, 20:26 عصر
سلام مجدد به همگی.
من این کد هار را در قالب یک مثال در یک پروژه جدا آماده کردم نمیدونم چرا تو یک پروژه جدا کار می کند و هیچ اشکالی در رفرش شدن مرورگر ندارد. فایل را ضمیمه کردم با این فایل مشکلی ندارم.
میشه یکی راهنمایی بکنه کلافه شدم:ناراحت:
ممنون میشم

mashhadpix
سه شنبه 30 اردیبهشت 1393, 17:31 عصر
کسی نمیدونه مشکل پروژه اصلی من چیه که رفرش باید بخورد؟ چرا تو این مثال درست کار می کند؟