PDA

View Full Version : سوال: تبدیل اطلاعات Table به کنترل مثلا Button



alireza048
جمعه 11 بهمن 1398, 22:19 عصر
سلام دوستان وقت بخیر چند سالی هست که عضو برنامه نویس هستم و کلی از اطلاعات جمیع دوستان استفاده کردم:قلب::قلب::قلب::قلب::قلب:ا ما چند روزی هست که به مشکل خوردم :گریه::گریه:تنها جایی که فکرم رسید همینجا بود و قسمت شد که برای اولین بار سوال خودمو مطرح کنم.:لبخند::لبخند::لبخند:

آقا من یک نرم افزاری به زبان C#‎‎‎‎ نوشتم و در بخشی از نرم افزار نیاز به این دارم که رکورد های یکی از جدول هام تبدیل بشه باتون و تو پنل خاصی به نمایش در بیاد و تعداد باتون هام به تعداد رکورد هام بستگی داره :متفکر:

یه چیزی تو مایه های item themeplate تو asp.net مثلا تمپلیتش همون کنترلر باتون باشه که به تعداد رکورد هام باتون به وجود بیاد زمان اجرا و با کلیک روی هر باتون اطلاعات مربوط به باتون فراخونی بشه و تو یک فاکتور قرار بگیره
مثلا:


name
price
image
id


کیک یزدی
2000
cak4e.jpg
1


کیک غیر یزدی
2100
cak3e.jpg
2


کیکی که ادای یزدی و در میاره
2500
cak2e.jpg
3


کیک نرسیده به یزد
2600
""
4


"
"
"
5


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

Mahmoud Zaad
شنبه 12 بهمن 1398, 10:56 صبح
سلام
یه flowLayoutPanel به فرم اضافه کنید. بعد دکمه ها رو با کد بسازید و داخل پنل اضافه کنید.
اول یه سلکت انجام بدید و کل ردیفهای دیتابیس رو توی دیتاتیبل بریزید بعد به ازای هر ردیف یه دکمه یا هر کنترل دیگه ای بسازید
foreach(DataRow dr in myDt)
{
Button btn=new Button();
btn.Text=dr["fildeTextDarDb"].ToString();
btn.Tag=dr["fildeIdDarDb"].ToString();
//image , ...
flowLayoutPanel1.Controls.Add(btn);
}
کدها رو همینجا نوشتم شاید غلط املایی داشته باشه.
البته می تونید یه کلاس درست کنید که از دکمه ارث بری میکنه و خودتون یه پراپرتی بهش اضافه کنید برای id و از خاصیت تگ استفاده نکنید.
و اینکه میشه یه UserControl ایجاد کرد (به جای دکمه در کد بالا) که مثل همون تمپلیت خودتون بتونید طراحیش کنید. و به جای دکمه از این یوزر کنترل بسازید و به پنل اضافه کنید.

alireza048
دوشنبه 21 بهمن 1398, 20:55 عصر
سلام محمود جان این کد ها ارور میدن ویرایش کردم غلط ها رو اما با زهم اشکال داره
من یه کوچولو مبتدی هستم و اصلا کاری نتونستم انجام بدم
ببین رفیق من نمی خوام توی دیتا گرید ویو کنترلر بیاد می خوام id های تیبل بیاد توی پنل در فرم یعنی هر دفعه که یک مقدار به تیبل اضافه میشه به صورت اتوماتیک کنترلر بیاد توی پنل احتمال داره مقدار اولیه یک باشد و هر دفعه که کاربر محصول اضافه می کنه خود به خود کنترلر بسازه

Mahmoud Zaad
سه شنبه 22 بهمن 1398, 09:14 صبح
سلام
شما قدم به قدم جلو برید و اسم ها رو بر اساس فیلدهای خودتون تغییر بدید مثلا fildeTextDarDb، اسم فیلدی هست که شما در دیتابیس متن رو نگه می دارید و ...
برای رفع خطا کدها یا متن خطا رو بفرستید.

alireza048
سه شنبه 22 بهمن 1398, 19:01 عصر
سلام فیلد هارو تغییر داده بودم اما مشکل در datarow فکر میکنم باشه
151352
این برای اونت paint flow ...






151353
این رویداد load فرم پروژه

the king
سه شنبه 22 بهمن 1398, 19:22 عصر
سلام فیلد هارو تغییر داده بودم اما مشکل در datarow فکر میکنم باشه


foreach (DataRow dr in dt.Rows)

Mahmoud Zaad
سه شنبه 22 بهمن 1398, 20:28 عصر
با تشکر از the king
با توجه به عکسها، اولا نیازی به ایونت paint ندارید. دوما نیازی هم به خط datagridview.DataSource=dt; و نمایش در گرید ندارید.