PDA

View Full Version : سوال: جستجو در ChekedListBox



Mohandes2009
دوشنبه 01 شهریور 1389, 05:36 صبح
یک ChekedListBox و یه TextBox داریم که یه سری آیتم در ChekedListBox هست وقتی اول اسم یک از اون ایتم ها را در TextBox می نویسیم ChekedListBox براساس اون فیلتر بشه و دوباره حرف بعدی که م ینویسیم دوباره فیلتر بشه و..
و اگر هم TextBox پاک شد دوباره همهآیتم ها نشون داده بشه!

و اگر هم یکی از آیتم ها چک خورده بود هرچند اول اسمش با اونی که سرچ م یکنیم یکی نیست ولی در فیلتر نشون بده!!

چیکار باید بکنم؟ میشه بگین؟:متفکر:( البته با استفاده از LINQ )

ایمان مدائنی
دوشنبه 01 شهریور 1389, 12:55 عصر
چك ليست باكس رو چجوري پر ميكني ؟
از بانك اطلاعاتي يا دستي ؟

Mohandes2009
دوشنبه 01 شهریور 1389, 13:01 عصر
چك ليست باكس رو چجوري پر ميكني ؟
از بانك اطلاعاتي يا دستي ؟
از بانک پر میکنم

ایمان مدائنی
دوشنبه 01 شهریور 1389, 13:11 عصر
بايد روي ديتا تيبل دستور query اس كيو ال بزاري
بلدي ؟
از like% استفاده كن بلدي ؟
اگه نمي توني بگو برات نمونه كد بزارم

Mohandes2009
دوشنبه 01 شهریور 1389, 13:14 عصر
بايد روي ديتا تيبل دستور query اس كيو ال بزاري
بلدي ؟
از like% استفاده كن بلدي ؟
اگه نمي توني بگو برات نمونه كد بزارم
نه نه دیگه الان فرض به اینه که از دیتا بیس خونده و لیست شده داخل ChekedListBox و الان دارم سرچ را داخل برنامه انجام میدم داخل همون آیتم هایی که لیست شده!

بعد دستوراتش را با LINQ می نویسم نه با query!!

ایمان مدائنی
دوشنبه 01 شهریور 1389, 13:38 عصر
عزيز ما ديگه با ديتا بيس كار نداريم ميتونيم دستورات اس كيو ال رو روي داتا تيبل اعمال كنيم بدون فرستادن كوئري به ديتا بيس

ricky22
دوشنبه 01 شهریور 1389, 16:04 عصر
سلام Checklistbox و listbox فرقی ندارند در این مورد
این نمونه کد را بررسی کن و بهینش کن کارتو راه میندازه.
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/a8e31841-1ba9-4990-b0e3-bdee489555af

mmd2009
دوشنبه 01 شهریور 1389, 17:32 عصر
با سلام

العا یک برنامه برات نوشتم ببین به دردت میخوره. کاملا فیلترسازی می کنه.

البته وقت نکردم زیاد روش کار کنم تا بهتر بشه ولی هر چی هست فکر کنم خوب باشه.

Mohandes2009
دوشنبه 01 شهریور 1389, 18:42 عصر
آخه مشکل اینه من این چیزا را نمی فهمم من با LINQ می نویسم مثلا برای پر کردن چک لیست باکس اینجوری مینویسم



var k = from c in linq.TPerson_Infos
select c;
foreach (TPerson_Info item in k)
{
checkedListBox1.Items.Add(item.Name + "-" + item.Family);
}


مطمئنا اون چیزایی که شما ها نوشتید و زحمت کشیدید هم درسته ولی اگه امکانش هست به LINQ بگید:خجالت:

mmd2009
دوشنبه 01 شهریور 1389, 19:57 عصر
اگر میتونستید یک نمونه برنامه ایجاد کنید و بدید درستش کنیم بهتر بود.

Mohandes2009
دوشنبه 01 شهریور 1389, 23:26 عصر
اگر میتونستید یک نمونه برنامه ایجاد کنید و بدید درستش کنیم بهتر بود.
من همه چی را که شرح دادم کامل:افسرده:

Mohandes2009
سه شنبه 02 شهریور 1389, 13:17 عصر
آقا مشکل من تا حدی حل شد
کد زیر را نوشتم


private void textBox1_TextChanged(object sender, EventArgs e)
{
if (textBox1.Text=="")
{
checkedListBox1.Items.Clear();
var k = from c in linq.TPerson_Infos
select c;
foreach (TPerson_Info item in k)
{
checkedListBox1.Items.Add(item.Name + "-" + item.Family);
}
}
else
{

checkedListBox1.Items.Clear();
var k = from c in linq.TPerson_Infos
where c.Name == textBox1.Text.Substring(0) || c.Family == textBox1.Text.Substring(0)
select c;
foreach (TPerson_Info item in k)
{
checkedListBox1.Items.Add(item.Name + "-" + item.Family);
}

}
}


فقط اگه آیتمی تیک خورده باشه چجوری میشه نوشت که پا ک نشه از چک لیست باکس بقیه clear بشه؟
و دیگه اینکه تابعی در رشته ها نداریم که بتونم حرف به حرف را مقایسه کنم؟
مثلا من یه حرف از اون چیزی را که می نویسم با کل کلمه موجود در بانک مقایسه کنه اگه داخلش بود بیاره برام

تو این تکه کد من مثلا اگه یه اسم که کامل نوشتم با اسم های تو بانک یکی بود میاره برام وگرنه نمیاره چیزی را!

mmd2009
چهارشنبه 10 شهریور 1389, 02:07 صبح
دوست عزیز این جواب شماست که با استفاده از linq برات فیلتر سازی کردم چک لیست باکس رو البته اگر طبق چیزی بود که میخواستی !!!



// تعریف کوئری کور نظر
var query = from c in dt.AsEnumerable()
where c.Field<int>("age").ToString().StartsWith(textBox1.Text)
select c;

// اتصال به چک لیست باکس
(checkedListBox1 as ListBox).DataSource = query.AsDataView();
(checkedListBox1 as ListBox).DisplayMember = "age";