PDA

View Full Version : توضیح درباره خاصیتهای SelectedValue و. . .کنترل Combobox



negar.rafie
سه شنبه 01 اسفند 1391, 10:27 صبح
سلام
ببخشید سوالم خیلی ساده هست
میخواستم تفاوت بین خاصیتهای SelectedItem و SelectedText و SelectedValue کنترل Combobox را توضیح بدید

veniz2008
سه شنبه 01 اسفند 1391, 11:30 صبح
سلام
ببخشید سوالم خیلی ساده هست
میخواستم تفاوت بین خاصیتهای SelectedItem و SelectedText و SelectedValue کنترل Combobox را توضیح بدید
سلام.
با یه مثال توضیح میدم :
فرض کنید در سیستم دانشجویی جداول گروه آموزشی، مقطع تحصیلی و رشته تحصیلی را با فیلدهای زیر داریم:
گروه آموزشی :
کد گروه(کلید)
نام گروه
مقطع تحصیلی :
کد مقطع(کلید)
نام مقطع
رشته تحصیلی:
کد گروه
کد مقطع
کد رشته(کلید)
نام رشته
حالا کمبو رشته رو با توجه به مقادیر گروه و رشته پر میکنیم. حالا بریم سراغ سوال شما :
selectedItem که به داده انتخاب شده اشاره داره یه خروجی از نوع شی برمیگردونه که با توجه به نیازتون میتونید مدیریتش کنید. مثلا در حالت بالا فرض بگیرید در کمبو رشته شما به هر دلیلی به کد گروه اون رشته انتخاب شده نیاز دارید. در اینجا دیگه نمیشه از selectedText یا از selectedvalue استفاده کرد چرا که selectedtext متن رشته تحصیلی (مثلا مهندسی نرم افزار کامپیوتر) و selectedvalue هم کد رشته رو درون خودش نگه داشته.
با توضیحات بالا فکر کنم هر 3 مفهوم توضیح داده شده باشه ولی اگه ابهام دارید بپرسید.
موفق باشید.

negar.rafie
سه شنبه 01 اسفند 1391, 14:21 عصر
راستش متوجه نشدم

veniz2008
سه شنبه 01 اسفند 1391, 15:29 عصر
ببینید خاصیت selectedText به متن آیتم انتخاب شده اشاره داره (یعنی همون ظاهری که من و شما می بینیم).
خاصیت selectedValue به ارزش آیتم انتخاب شده اشاره داره.شاید بگید ارزش یعنی چی. کمبوباکس ما دو تا خاصیت مهم داره که معمولا هنگام پر کردن کمبو هر دوخاصیت رو مقداردهی میکنیم. یکی displaymember که میگه به کاربر چی رو نشون بدم (همون ظاهر) و یکی دیگه valuemember هست. این خاصیت میگه مثلا "رشته مهندسی نرم افزار کامپیوتر" (همون displaymember ) چه ارزشی(چه کدی) داره که همون valuemember میشه. بعد از ست کردن این دوتا خاصیت ما میتونیم مقادیر رو درون کمبو ببینیم و با انتخاب هر آیتم به ارزش (همون valuemember ) اون با گزینه selectedvalue دسترسی داشته باشیم. خلاصه بگم : displaymember باعث میشه که متن بیاد داخل کمبو و بتونیم از خاصیت selectedText استفاده کنیم و valuemember باعث میشه هر آیتم یه ارزش(یه کد) بدست بیاره و ما بتونیم از خاصیت selectedvalue استفاده کنیم.
حالا فرض کنید من یه select به جدول رشته زدم و کل مقادیر رو بدست آوردم و کمبو رشته خودم رو پر کردم. اگه بخوام به مقدار مثلا کد گروه آیتم انتخاب شده دسترسی داشته باشم نه با selectedText میتونم (چون متن رشته رو نشون میده) و نه با selectedValue (چون ارزش یا همون کد رشته رو در خودش داره). در اینحالت selectedItem میتونه به ما کمک کنه که از ایتم انتخاب شده مثلا کد گروهش رو بدست بیاریم. خلاصه بگم: شما با selectedItem میتونی به مقدار هر 4 فیلد جدول رشته دسترسی داشته باشی و با توجه به نیازت ازش استفاده کنی.

negar.rafie
سه شنبه 01 اسفند 1391, 15:41 عصر
ممنون متوجه شدم
فقط یه سوال دیگه چطوری وقتی یه ایتم را به کومبوباکس اضافه میکنم به این ایتم displaymemberو valuemember اختصاص میدیم؟

veniz2008
سه شنبه 01 اسفند 1391, 15:50 عصر
به این شکل :

SqlConnection con = new SqlConnection("server = .\\md2008;database = DBPresent;integrated security = true");
SqlDataAdapter da = new SqlDataAdapter("select * from TblReshte", con);
DataTable dt = new DataTable();
da.Fill(dt);
CmbReshte.DataSource = dt;
CmbReshte.DisplayMember = "ReshteName";
CmbReshte.ValueMember = "ReshteID";

negar.rafie
سه شنبه 01 اسفند 1391, 16:02 عصر
ممنون به این شکل بلدم که از جدول اطلاعات را لود کنیم
منظورم این بود که مثلا اگر ما به صورت دستی یه ایتم به صورت زیر به کومبو اضافه کردیم ایا میشه displaymemberو valuememberرا هم تخصیص داد؟
comboBox1.Items.Add("name");

veniz2008
سه شنبه 01 اسفند 1391, 20:01 عصر
ممنون به این شکل بلدم که از جدول اطلاعات را لود کنیم
منظورم این بود که مثلا اگر ما به صورت دستی یه ایتم به صورت زیر به کومبو اضافه کردیم ایا میشه displaymemberو valuememberرا هم تخصیص داد؟
comboBox1.Items.Add("name");
فکر نمیکنم بتونید به این صورت انجام بدید (ولی مطمئن نیستم). میشه یه راهکار دیگه استفاده کرد. یه دیتاتیبل با دو ستون text و value بسازید. هر مقداری رو که میخواید دستی به کمبو اضافه کنید متن و ارزش اون مقدار رو به دیتاتیبل اضافه کنید. در نهایت دیتاتیبل رو به کمبو بایند کنید و خصوصیات displaymember و valuemember رو به ترتیب برابر با "text" و "value" قرار بدید.

یونس ابراهیمی
سه شنبه 01 اسفند 1391, 21:04 عصر
سلام دوست عزیز
این مقاله رو هم بخونید
امیدوارم به دردتون بخوره

دانلود (http://www.uploadtak.com/images/v8869_The_ComboBox_Control.rar)