PDA

View Full Version : سوال: مشکل با combobox



sara_mc
سه شنبه 18 آبان 1389, 22:32 عصر
سلام
من می خوام تو combobox یه چیز نشون بدم اما یه چیز دیگه به جای اون به پایگاه داده بفرستم مثلا خرداد رو نشون بدم اما 03 رو به پایگاه بفرستم ، آیا راهی غیر از if-else یا ایجاد یه جدول جدا برا اون و تعریف دیتا سورس سراغ دارید ؟
اگر کمکم کنید ممنون میشم

Mohandes2009
سه شنبه 18 آبان 1389, 23:17 عصر
خب برای ایتم های کومبو باکس یه خاصیت Text داریم یه خاصیت Value شما می تونی مثلا text را خرداد نشون بدی اما مقدار Value را 03 بزاری و مقدار Value را در دیتا بیس ذخیره کنی:چشمک:

Mohandes2009
سه شنبه 18 آبان 1389, 23:21 عصر
یادم رفت بگم اگه شما Value را مقدار دهی نکنی وقتی Text را مقدار دهی میکنی خودش مقدار Value را با Text برابر میکنه:چشمک:موفق باشی

Reza_Yarahmadi
چهارشنبه 19 آبان 1389, 07:48 صبح
كمبو VS قابليت تنظيم دستي خاصيت Value رو نداره و فقط در حالتي كه ValueMember تنظيم شده باشه قابل استفاده است.(به يك ليست وصل بشه)
براي كاري كه شما گفتيد ميشه از خاصيت SelectedIndex استفاده كرد. ولي در كل اگر نياز داريد كه به جاي Text چيز ديگه اي ذخيره كنيد بايد يا يك كمبو سفارشي براي خودتون بنويسيد يا اينكه از كمبوهاي آماده اي كه اين قابليت رو دارند استفاده كنيد (تا جايي كه ميدونم Janus و devExpressh اين كمبو رو دارند)

Mohandes2009
چهارشنبه 19 آبان 1389, 08:36 صبح
بیا این نمونه پروژه که Value و Text اون تنظیم شده!

Reza_Yarahmadi
چهارشنبه 19 آبان 1389, 08:59 صبح
مهندس جان نيازس نيست اين همه قضيه رو بپيچوني از ديتابيس و ديتاست و ... استفاده كني. با چند خط زير هم ميشه اين كار رو انجام داد

class TempClass
{
public TempClass(string text, string value)
{
this.Text = text;
this.Value = value;
}
public string Text { get; set; }
public string Value { get; set; }
}
private void Form1_Load(object sender, EventArgs e)
{
List<TempClass> P = new List<TempClass>();
P.Add(new TempClass("Text1", "Value1"));
P.Add(new TempClass("Text2", "Value2"));
P.Add(new TempClass("Text3", "Value3"));
P.Add(new TempClass("Text4", "Value4"));
comboBox1.DataSource = P;
comboBox1.DisplayMember = "Text";
comboBox1.ValueMember = "Value";
}

ASP.NET3.5
چهارشنبه 19 آبان 1389, 18:30 عصر
تشکر خوب بود