PDA

View Full Version : برگرداندن کد محصول انتخاب شده در ListBox



Developer Programmer
جمعه 04 اردیبهشت 1388, 01:30 صبح
فرض کنین، اسامی محصولات توسط ListBox یا ComboBox نشون داده میشه.

چطور میشه فهمید کد محصول، در فلان سطر چه عددیه ؟ منظورم اینه که میشه برای هر سطر، یک مقدار ضمنی هم داشته باشیم تا با هر بار انتخاب سطر، مجبور به پیدا کردن کد محصول، توسط Select کردن در DB نباشیم ؟

Ali_Mor
جمعه 04 اردیبهشت 1388, 08:08 صبح
کامبوبکس یک پروپرتی بنام ValueMemberداره که برای همین کار است. مقدار اون رو برابر اسم فیلد کدمحصول قرار بده و بعد دیتاتیبل رو به خاصیت Datasource اون منتسب کن

Developer Programmer
جمعه 04 اردیبهشت 1388, 10:03 صبح
در مورد ListBox چطور ؟
اگه به DB وصل نباشیم چطور باید مقدار دهی کرد؟

shtnava
جمعه 04 اردیبهشت 1388, 12:46 عصر
تو Datavalue میتونی مقدار رو برگردونی

Developer Programmer
جمعه 04 اردیبهشت 1388, 17:18 عصر
خب واسه Combo پیدا کردم... روش رو میگم شاید به درد کسی بخوره

یه کلاس ساده متشکل از دو پراپرتی.


public class AddValue
{
private string m_Display;
private long m_Value;
public AddValue( string Display , long Value )
{
m_Display = Display;
m_Value = Value;
}
public string Display
{
get { return m_Display; }
}
public long Value
{
get { return m_Value; }
}
}

از اونجایی که Combo ذاتا یه لیست به حساب میاد و متد Add هم یه آبجکت رو به عنوان ورودی قبول میکنه یه لیست می سازم. هربار یه Instance از کلاس(یه آبجکت) رو درش قرار میدم


ArrayList Authors = new ArrayList();
Authors.Add( new AddValue( "Salam" , 5 ) );

بعد این لیست رو به Combo پاس میدم


cboAuthors.DataSource = Authors;
cboAuthors .DisplayMember ="Display";
cboAuthors.ValueMember = "Value";

هرچند کد درست و بی عیب کار میکنه ... اما هنوز نفهمیدم چرا DisplayMember و ValueMember رو باید به فرم String بهش پاس میدادم !