PDA

View Full Version : رفرش کردن دیتاگرید



masoud_z_65
یک شنبه 23 مرداد 1390, 18:30 عصر
سلام...مممنون میشم یکی سریع کمکم کنه که برای رفرش کردن یک گرید ویو باید چیکار کنم؟

یعنی توی دیتا گرید یک دکمه انصراف دارم که میخوام بعد از زدنش گرید ویو رفرش بشه تا معلوم بشه که رکرودی ثبت نشده


ببخشید تو عنوان تاپیک اشتباه نوشتم گرید ویو.....دیتا گرید منظورم بود

morteza271
یک شنبه 23 مرداد 1390, 20:10 عصر
خوب میتونید در رویداد کلیک دکمه انصراف تیبل آداپتری که به گریدتون وصل کردین رو دوباره Fill کنید.
MyDataAdapter.Fill(MyDataSet.MyTable);

saeed razaee
یک شنبه 23 مرداد 1390, 20:18 عصر
بعد از ذخیره یا حذف و ... یکی از کدهای زیر را می نویسیم.


Form1_Load(sender,e);

Form1_Load(null, null);

Farshid007
یک شنبه 23 مرداد 1390, 20:30 عصر
همون جوری که پرش می کنی رفرشش کن:
SqlConnection ObjSqlConnectio1 = new SqlConnection("Your Connection String");
SqlDataAdapter objDataAdaptor = new SqlDataAdapter("select * from [Your Table Name]", ObjSqlConnectio1);
DataTable ObjDataTable = new DataTable();
objDataAdaptor.Fill(ObjDataTable);
DataGridView1.DataSource = ObjDataTable;

masoud_z_65
دوشنبه 24 مرداد 1390, 16:51 عصر
هیچ کدوم از این کارها که گفتین نشد!!!

من میخوام گرید ویو رو رفرش کنم چطوری میشه؟؟؟

چه ربطی به تیبل داره؟!؟؟!

morteza271
دوشنبه 24 مرداد 1390, 17:01 عصر
شما جطوری گریدتون رو پر می کنید؟

pedramfj
دوشنبه 24 مرداد 1390, 17:06 عصر
ابتدا باید توسط کد زیر اطلاعات دیتاگرید را پاک کنید.

dataGridView1.Rows.Clear();
سپس با استفاده از اطلاعاتی که دارید(مقدار textbox) دیتاگرید را مقدار دهی کنید.
موفق باشید

masoud_z_65
دوشنبه 24 مرداد 1390, 17:52 عصر
شما جطوری گریدتون رو پر می کنید؟

یک تابع ست هستش و داخل اون این کد:

grdList.DataSource = inputList;
grdList.DataBind();

آخر این کد که میخوام گرید ویو رو رفرش کنم نمیدونم چطوری؟!؟!؟
که بعد از زدن انصراف چیزی ثبت نشه

masoud_z_65
دوشنبه 24 مرداد 1390, 17:55 عصر
ابتدا باید توسط کد زیر اطلاعات دیتاگرید را پاک کنید.

dataGridView1.Rows.Clear();
سپس با استفاده از اطلاعاتی که دارید(مقدار textbox) دیتاگرید را مقدار دهی کنید.
موفق باشید

دوست عزیز من اشتباه کردم منظورم گرید ویو بود....گرید ویو نه تابع clear و نه تابع refresh رو نداره!

morteza271
دوشنبه 24 مرداد 1390, 18:09 عصر
یک تابع ست هستش و داخل اون این کد:

grdList.DataSource = inputList;
grdList.DataBind();

آخر این کد که میخوام گرید ویو رو رفرش کنم نمیدونم چطوری؟!؟!؟
که بعد از زدن انصراف چیزی ثبت نشه
خوب پس در رویداد کلیلک کلید انصراف هم همون تابع رو صدا بزنید.

masoud_z_65
دوشنبه 24 مرداد 1390, 18:28 عصر
خوب پس در رویداد کلیلک کلید انصراف هم همون تابع رو صدا بزنید.

دوست عزیز توی رویداد کلید انصراف همین کدهایی که گفتم هستش اما درست کار نمیکنه!!
یعنی وقتی روی انصراف کلیک میکنم اول تابع grdList_RowCancelingEdit اجرا میشه و داخل این تایع هم تابع ست فراخوانی میشه و تابع ست هم کدهای بالا

بنظرم چیزی که اومد این بود که توی تابع ست گرید ویو رو رفرش کنم اما نمیشه....کاش میشد یکی یه مثال بنویسه که داخل یک گرید ویو یک کلید(linkbutton) بنام انصراف هست و وقتی رو انصراف کلیک میکنی میخوای که اطلاعاتی که داخل تکست باکسهات نوشتی ثبن نشه و کنسل بشه

morteza271
دوشنبه 24 مرداد 1390, 18:33 عصر
در برنامتون وقتی کاربر میخواد اطلاعات رو ویرایش کنه چطوری این کار رو میکنه؟
توی گرید تایپ میکنه یا تکست باکس های جدا گذاشتین و توی اونا وارد میکنه و کلید ثبت رو میزنه؟
اگه تکست باکس های جدا گذاشتین که دیگه نیازی نیست گرید رو رفرش کنید،و فقط کافیه اطلاعات توی تکست باکس ها رو پاک کنید همین.
ولی اگه داخل گرید تایپ میکنه باید دوباره اطلاعات رو از دیتابیس بخونید و گرید رو پر کنید تا اطلاعاتی که کاربر وارد کرده پاک بشن!

masoud_z_65
دوشنبه 24 مرداد 1390, 18:41 عصر
در برنامتون وقتی کاربر میخواد اطلاعات رو ویرایش کنه چطوری این کار رو میکنه؟
توی گرید تایپ میکنه یا تکست باکس های جدا گذاشتین و توی اونا وارد میکنه و کلید ثبت رو میزنه؟
اگه تکست باکس های جدا گذاشتین که دیگه نیازی نیست گرید رو رفرش کنید،و فقط کافیه اطلاعات توی تکست باکس ها رو پاک کنید همین.
ولی اگه داخل گرید تایپ میکنه باید دوباره اطلاعات رو از دیتابیس بخونید و گرید رو پر کنید تا اطلاعاتی که کاربر وارد کرده پاک بشن!

اول که ممنون وقت گزاشتی دوست خوبم
دوما بزار کامل توضیح بدم:
ما یه گریدویو داریم که توش چند تا تکست باکسه
یه دکمه جدید و یه دکمه حذف
وقتی روی جدید میزنیم یه رکرود جدید و خالی آماده برای وارد کردن اطلاعات داخل تکست باکسها به گرید ویو اضافه میشه که کنارش هم 2تا (link button) به نامهای انصراف و به روز رسانی وجود داره
حالا وقتی روی انصراف کلیک میکنم به جای اینکه رکرودی رو که اضافه کرده بود حذف کنه و به شرایط قبل برگرده به اشتباه یه رکود خالی با فیلدهای خالی ثبت میشه!!
من میخوام وقتی روی انصراف کلیک کرد کلا چیزی ثبت نشه.....البته وقتی صفحه رو فرش میکنم چیزی ثب نشده یعنی در کل برا برنامه مشکلی بوجود نمیاره اما کاربر پسند نیست که دکمه انصرافش کار نکنه
این به ذهنم رسید که اگه بشه گرید ویو رو جوری رفرش کرد مشکل حل میشه

masoud_z_65
دوشنبه 24 مرداد 1390, 20:35 عصر
کسی نیست به من کمک کنه....؟!؟!؟

Farshid007
دوشنبه 24 مرداد 1390, 20:46 عصر
یعنی چی؟
تو میگی من با این کد پرش میکنم
اما دوباره نمیشه با هین کد پرش کرد(رفرش بشه):متعجب:
اصلا می خوایی برنامه رو یه بار ببند و دوباره بازش کن ::لبخند:
//Restart Applicteion
System.Diagnostics.Process.Start(Application.Start upPath + @"\" + Application.ProductName);
Application.Exit();
//Application was Restarted

Farshid007
دوشنبه 24 مرداد 1390, 20:47 عصر
جسارت
میشه برنامتو پیوست کنی
ببینم تو DGV چطوری چند تا TextBoxهست؟؟؟؟
در کل می خوام برنامتو ببینم
نترس از سورس هات کپی نمیزینم
مرC

masoud_z_65
سه شنبه 25 مرداد 1390, 16:11 عصر
دوست عزیز برنامرو که نمیتونم پیوست کنم فوق العاده حجمش بلاست اما قطعه کد رو میزار ممنون میشم کمکم کنی
در ضمن dgv نه و gv گفتم که اشتباه کردم منظورم گرید وی بود

این برای دکمه انصراف:

protected void grdList_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{

CourseStudent courseStudent = Session[Constants.Training.Session.CourseStudent] as CourseStudent;
if (courseStudent != null)
{
grdList.EditIndex = -1;
SetData(courseStudent.PaymentList);
}
else
{
Page.AddErrorMessage(Constants.Common.ResourceMess ageIDs.ParentSessionObjectIsNull);
return;
}

}//end

اینم تابع setdata:


private void SetData(IList list)
{
try
{
IList paymentList = new ArrayList();
if (list != null)
{
foreach (Payment obj in list)
{
if (obj.RuntimeState != Faraconesh.ApplicationFramework.Common.RuntimeStat e.Deleted)
{
paymentList.Add(obj);
}
}
}

grdList.DataSource = list;
grdList.DataBind();
}
catch (Exception ex)
{
Page.LogError(ex);
}
}

masoud_z_65
چهارشنبه 26 مرداد 1390, 19:14 عصر
کسی نبود کمک کنه؟

masoud_z_65
پنج شنبه 27 مرداد 1390, 15:11 عصر
بالا اومدن تاپیک