PDA

View Full Version : سوال: بایند شدن اطلاعات در کمبو باکس به همراه چند گزینه ثابت



aliramazani
چهارشنبه 01 مرداد 1393, 16:37 عصر
بایند شدن اطلاعات در کمبو باکس به همراه چند گزینه ثابت چطوریه؟

مثلا یه سری اطلاعات از دیتابیس در کمبو باکس نشون داده بشه (اینو بلدم) بعد بالای لیست یه گزینه همه موارد هم باشه. (اینو بلد نیستم)
البته از طریق کنترل کمبو باکس گزینه دلخواه را وارد میکنم ولی بعد از بایند شدن فقط اطلاعات دیتابیس نشون داده میشه و گزینه های قبلی حذف میشن

khokhan
چهارشنبه 01 مرداد 1393, 17:03 عصر
بایند شدن اطلاعات در کمبو باکس به همراه چند گزینه ثابت چطوریه؟

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


da.Fill(dt);DataRow row = dt.NewRow();
row["Category"] = "<-انتخاب شما->";
dt.Rows.InsertAt(row, 0);
CBParent.DataSource = dt;

وایضا فی linq :


List<Asignatura> list1 = new List<Asignatura>();



var result1 = from p in GHEntities.Asignaturas
orderby p.nombre_asignatura
select p;


list1.AddRange(new Asignatura[]
{
new Asignatura
{
id_asignatura = "-1",
nombre_asignatura = "<Select a subject>"
}
});


foreach (Asignatura asignatura in result1)


{
list1.Add(asignatura);
}
this.cb0101.DataSource = list1;
this.cb0101.DisplayMember = "nombre_asignatura";
this.cb0101.ValueMember = "id_asignatura";
this.cb0101.SelectedValue = clase.id_asignatura.ToString();

aliramazani
چهارشنبه 01 مرداد 1393, 17:07 عصر
از linq استفاده میکنم

aliramazani
چهارشنبه 01 مرداد 1393, 17:15 عصر
Asignatura چیه؟

aliramazani
چهارشنبه 01 مرداد 1393, 17:16 عصر
GHEntities
clase.id_asignatura
cb0101

چی هستن؟

khokhan
چهارشنبه 01 مرداد 1393, 17:28 عصر
GHEntities
clase.id_asignatura
cb0101

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


GHEntities نام لیست هست

id_asignatura هم همون گزینه پیش فرض هست

aliramazani
چهارشنبه 01 مرداد 1393, 17:33 عصر
خب به اینا ارور میگیره

aliramazani
چهارشنبه 01 مرداد 1393, 17:37 عصر
تصویر ضمیمه را ببینید

Mahmoud.Afrad
چهارشنبه 01 مرداد 1393, 17:44 عصر
www.rayanehkhabar.com (http://barnamenevis.org/member.php?11988-www-rayanehkhabar-com) بهتره کدی که خودت کمبوباکس رو پر میکنی و بدون خطا هست رو بزاری تا اصلاح بشه.

aliramazani
چهارشنبه 01 مرداد 1393, 17:45 عصر
comboBoxEx2.DataSource = db.cells.OrderByDescending(c => c.row).Select(c => c.pdate).Distinct();

khokhan
چهارشنبه 01 مرداد 1393, 18:35 عصر
comboBoxEx2.DataSource = db.cells.OrderByDescending(c => c.row).Select(c => c.pdate).Distinct();
قبل از هرچیز بایس یه کلاس با متغیرهایی که لازم دارین درست می کردین:

public class ComboboxItem{
public object ID { get; set; }
public string Name { get; set; }


}

و بعد لیستی از اون کلاس ایجاد می کردین:


DataClasses1DataContext db = new DataClasses1DataContext(Constants.CONN_STRING); List<ComboboxItem> Ilist = new List<ComboboxItem>();
var query = from c in db.zirnas.ToList() select c;
foreach (var q in query)
{
ComboboxItem item = new ComboboxItem();
item.ID = q.id;
item.Name = q.name;
Ilist.Add(item);
}

اینطوری :

aliramazani
جمعه 03 مرداد 1393, 17:16 عصر
مرسی بابت راهنماییتون. کد به خوبی جواب داد.
یه سوال:
من برای حذف داده های تکراری توی این کد شما .Distinct() را کجا باید بزارم؟؟؟

aliramazani
جمعه 03 مرداد 1393, 18:07 عصر
با تغییرات زیر مشکل حل شد:

var query = (from c in db.cells.ToList() select new {c.pdate}).Distinct();
foreach (var c in query)
{
ComboboxItem item = new ComboboxItem();
// item.ID = q.row;
item.Name = c.pdate;
Ilist.Add(item);
}