سلام دوستان.من قبل از پرسیدن سوالمdatagrid رو search کردم و تمام سوال جواب ها رو خوندم و علی رغم تکراری بودن اکثر سوال ها و جواب ها, جوابمو نگرفتم.
من می خوام وقتی محتویات یه table در datagrid نمایش داده می شه , همون جا تو datagrid تغیییرات رو در فیلدها اعمال کنم و با زدن یک دکمه ی ذخیره این تغییرات در جدولم در database , ذخیره بشه.و برام مهمه که این تغییرات در خود datagrid صورت بگیره و نه از طریق چند تا textbox .ممنون می شم راهنماییم کنید.با کد البته.
متشکرم.
با سلام
واسه حل مشكلتون با من همراه بشيد (مراحل رو به ساده ترين شكل ممكن توضيح دادم)
اول واسه راحتي كارتون يه پروژه ي آماده(پروژه كه نه ، يه مثال كوچولو) گذاشتم كه مي تونيد دانلود كنيد:(اين مثال web app هستش )
چيزايي كه واسه فهميدن پروژه بهتره بدونيد:
1- نام connection string من conn است .(البته نيازي به attach كردن نيست ، كافيه پروژه را درويژوال استوديو( VS2005 ، يا VS2008 ) باز كنيد.
2- نام ديتا بيس: Ecommerce ، كه داراي يك جدول به نام Employee (كارمندان) است.
3-اين جدول داراي سه فيلد :
1- ID
2-name
3- family
مي باشد.
در اين پروژه عمليات زير قابل اجرا است :
1-انتخاب يك ستون از گريد ويو -----(Select)
2-حذف يك ركورد از گريد ويو و بلافاصله حذف از ديتا بيس-----(Delete)
3-ويرايش تمام ستون ها در گريد ويو و اِعمال آن در جدول ديتا بيس ( امكان به روز رساني يا انصراف از حالت ويرايش)----- (Edit)
4-افزودن يك ركورد جديد به گريد ويو و ديتا بيس-----(Insert)
كارايي كه توي اين مثال انجاميدم ، اينجا واستون شرح مي دم .
(البته 2 روش وجود داره كه يكي راحت تره ، و اون يكي كامل تره ، كه من دومي رو مي گم)
توضيح چهار قابليت بالا :
براي شروع مثلث كوچك كنار گريد ويو را كليك كنيد و گزينه ي Edit Columns را انتخاب نماييد:
مورد اول و دوم :
انتخاب يك ستون از گريد ويو -----(Select) و حذف يك ركورد از گريد ويو و بلافاصله حذف از ديتا بيس-----(Delete) :
يك Button Field از ليست Add كنيد.
خصوصيت Text را برابر با "انتخاب" قرار دهيد.
خصوصيت CommandName را برابر با btnselect و يا نام دلخواه ديگري بگذاريد(از اين نام براي اجراي دستورات دلخواهي كه قرار است با كليك بر روي اين دكمه اجرا شوند ، در كد نويسي استفاده مي شود.)
اكنون به پنل properties ِ مربوط به گريد ويو رفته و دكمه ي Events را انتخاب كنيد ، تا event هاي موجود كه براي گريد ويو در نظر گرفته شده ، نمايش داده شود .
مقابل كلمه ي RowCommand دبل كليك كنيد تا وارد صفحه ي كد شود ، اكنون كد زير را وارد نماييد:
int idx;
if (e.CommandName == "btnselect")
{
idx = Convert.ToInt32(e.CommandArgument);
GridView1.Rows[idx].BackColor = System.Drawing.Color.LightGreen;
}
else if (e.CommandName == "btndelete")
{
idx = Convert.ToInt32(e.CommandArgument);
int ID = (int)GridView1.DataKeys[idx].Value;
delete_employee(ID);
refresh_grvEmployee();
}
مجددا به Edit Columns باز گشته و يك دكمه ي ديگر مانند دكمه ي "انتخاب" ، Add كنيد.
با اين تفاوت كه :
خصوصيت Text را برابر با "حذف كارمند" قرار دهيد.
خصوصيت CommandName را برابر با btndelete و يا نام دلخواه ديگري بگذاريد.
نكته :با انتخاب هر ركورد در اين پروژه ، رنگ ركورد به رنگ سبز روشن در مي آيد ، جهت تغيير رنگ در كد زير ، به جاي LightGreenرنگ دلخواه خود را قرار دهيد:
GridView1.Rows[idx].BackColor = System.Drawing.Color.نام رنگ دلخواه شما;
مورد سوم :
ويرايش يا انصراف از حالت ويرايش----- (Edit)
گريد ويو داراي يك دكمه ي سه وضعيتي به نام edit,update,cancle مي باشد، كه هنگام كار با گريد ويو در پنجره ي Edit Columns و در ليست سمت چپ (available list ) مشاهده مي نماييد.
اين دكمه را Add كنيد و در بخش خصوصيات آن (كه در ليست سمت راست مشاهده مي كنيد) تغييرات دلخواه خود (تغيير نام دكمه ها به فارسي ) را انجام دهيد.
به پنل properties ِ مربوط به گريد ويو رفته و دكمه ي Events را انتخاب كنيد ، تا event هاي موجود كه براي گريد ويو در نظر گرفته شده ، نمايش داده شود .
مقابل كلمات RowCancelingEdit، RowEditing و RowUpdating دبل كليك كنيد تا evente مربوط به آنها در قسمت كد قرار گيرد .
اكنون طبق مثال من در پروژه كدها را به ترتيب وارد نماييد، اكنون پروژه ي شما آماده ي اجراست...
(جهت درج اطلاعات (Insert) نيز ابتدا بر روي فرم خود ، كنترل اي لازم را قرار دهيد ،دكمه ي "ذخيره ي اطلاعات" را در فرم قرار داده ، رويداد onclick دكمه را در قسمت كد فعال كنيد ،و كدهايي كه من در تابع رويداد onclick دكمه ي btnSave نوشتم را ضافه كنيد.)
موفق باشيد.