PDA

View Full Version : سوال: قرار Button و checkbox در دیتاگرید



davidrobert
شنبه 25 خرداد 1392, 15:02 عصر
من میخوام در دیتاگرید ویو دکمه حذف قرار بدم برای حذف رکورد موجود در دیتاگرید و از checkbox قرار بدم برای حذف گروهی اطلاعات ار دیتابیس.ممنون میشم به صورت کد ر بکید از چه کدی استفاده کنم برای قرار دادن checkbox و button.

sohil_ww
شنبه 25 خرداد 1392, 15:06 عصر
از قابلیت addcolumn خود گرید استفاده کن

davidrobert
شنبه 25 خرداد 1392, 15:07 عصر
من به صورت دیزان بلد هستم ولی کد نویسیش بدرد من میخوره تا بتوانم با هاش کار کنم.باید با کد بسازم دکمه و چک باکس رو.نه به صورت طراحی.

davidrobert
شنبه 25 خرداد 1392, 15:50 عصر
خواهشن کسی به صورت کدنویسی بلد هستش بگه که چطور به صورت کد بسازم دکمه و چک باکس رو در دیتاگرید.

knight-rak
شنبه 25 خرداد 1392, 16:52 عصر
DataGridViewCheckBoxColumn checkColumn = new DataGridViewCheckBoxColumn();
dataGridView1.Columns.Add(checkColumn);

davidrobert
شنبه 25 خرداد 1392, 17:16 عصر
DataGridViewCheckBoxColumn checkColumn = new DataGridViewCheckBoxColumn();
dataGridView1.Columns.Add(checkColumn);
ممنون توانستم بسازم چک باکس حالا میخوام بگم این چکس باکس همین این ستونم با این نام هستش.
dataGridViewX1.Columns["A_Doc"].HeaderText = "شماره سند"; چون با دیتاگرید اطلاعات رو ثبت میکنم و نمی توانم به صورت طراحی کار کنم و این اسم ها با دیتابیس من کامل در ارتباط هستش برای ذخیره اطلاعات.A_Doc این هم بگید یه دنیا ممنون میشم.که این بدونه این چک باکسی که ساختم برای این هستش.

davidrobert
شنبه 25 خرداد 1392, 17:42 عصر
A_Doc اسم سلول من هستش میخوام این اسم رو با چک باکس یکی کنم برای حذف اطلاعات به صورت چند تای و بدونه A_Doc همون checkColumn هستش خیلی ممنون میشم. این مرد رو هم کمک کنید.

knight-rak
شنبه 25 خرداد 1392, 18:17 عصر
معمولن روال کار برای بیرون کشیدن مقدار از هر کدوم از سلول ها بصورت زیر هستش :
x=dataGridView1[4,1].value.tostring()

عدد اول (4) شماره ستون و عدد دوم (1) شماره سطر هستش
درضمن دلیلی نداره حتما تبدیل به رشته کنی فقط بستگی داره به اینکه متغییری که میخوای این مقدار رو درونش قرار بدی از چه نوعی باشه که در ایجا اگر چک باکس باشه بولین هستش
موفق باشید

davidrobert
شنبه 25 خرداد 1392, 18:24 عصر
برادر چون اطلاعات دیتاگرید من با دیتابیس در ارتباط هستش و به وسیله دیتاگرید اطلاعات رو ذخیره میکنم باید با این یکی باشه تا بتوانم اطلاعات رو برای حذف انجام بدم.چون روش حذف من چند مردی می باشد.نه تکی dataGridViewX1.Columns["A_ID"].HeaderText = "شناسه"; که با نام باید بفهمونم به سیتم که این چک باکس برای این ستون هستش A_ID. ممنون میشم به این صورت نوشته بگید.

knight-rak
شنبه 25 خرداد 1392, 18:54 عصر
دوست عزیز منظورتون رو درست متوجه نشدم ولی اگر مشکل شما اینه که بجای عدد ستون اسم اونو بزارید خوب کافیه جایگزین کنید
اینطوری میشه اونوقت :

textBox1.Text = dataGridView1["A_ID", 0].Value.ToString();
0 شماره سطر هستش میتونید با استفاده از کلیک ماوس یا هر روش دیگه ای این عدد رو بصورت خودکار هم بدست بیارید حتی استفاده از اندیس سطر فعال که جایگزین همین عدد 0 میتونه بشه
شما به اون ستون نام اختصاص دادین بنابراین شما اندیس ستون رو دارین هر چند خیلی راحت میشه اندیس ستون هارو بدست آورد

khokhan
شنبه 25 خرداد 1392, 23:24 عصر
احتمالا شما می خواهید دیتا گریدی که به بانک وصل هست رو با شرط اینکه اگه ستون چک باکس تیک خورده باشه ، رکورد مربوطه از بانک حذف بشه :لبخند:

اگر فرض ما دست باشه واگه قصد شما این باشه بایستی ابتدا اندیس ستون چک باکس رو بدین و با foreach کلیه ردیفهایی رو که شرط براشون برقراره رو مشخص کنید وبعد با توجه فیلد " id "رکورد مربوطه کوری حذف رو به مورد اجرا بگذارین

یه چیزی مثل این :


private void btnDelete_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow rows in dataGridView1.Rows)
{
//چک کردن شرط چک باکسها
if (Convert.ToBoolean(dataGridView1.Rows[rows.Index].Cells[0].Value))
{
string id = dataGridView1.Rows[rows.Index].Cells["empid"].Value.ToString();
SqlCommand cmd = new SqlCommand("delete from ExSales where BillNo='" + id + "'", conn);
cmd.ExecuteNonQuery();

}
}
}