رفتن به مطلب

**جست‌وجو در لیست ویو(بدون دیتابیس)**


Salar82

ارسال‌های توصیه شده

سلام

بعضی وقت‌ها شده که بخوایم داخل لیست‌ویو یه سرچی رو انجام بدیم ولی با مشکلات زیادی روبرو شدیم و مجبور بودیم که سرچ رو داخل دیتابیس انجام بدیم و نتیجش رو داخل یه لیست ویو نشون بدیم.

جست‌وجو داخل لیست‌ویو بدون دیتابیس، بعضی وقت‌ها میتونه خیلی بهینه تر و اصولی تر باشه.

Untitled.gif.4aa094560bb848bb1f6a5bcab7e73210.gif

 

بخاطر همین من اومدم یه سورسی رو براتون آماده کردم که میتونید این کار رو به سادگی انجام بدید.(چه با SingleLine، چه با TwoLines لیست ویو)

 

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	Dim lText2 , lText1 As List
	
	Private ListView1 As ListView
	Private EditText1 As EditText
End Sub

در مرحله اول، میایم آیتم ها رو به لیست ویو اضافه می‌کنیم:

For i = 1 To 15
	ListView1.AddTwoLines("#SomeText" & i , "Text" & i)
	lText1.Add("#SomeText" & i)
	lText2.Add("Text" & i)
Next

اینجا برای اینکه Text آیتم‌ها رو داشته باشیم، اومدیم Text1 و Text2 هر کدوم رو داخل یه متغیر لیست، ذخیره کردیم.

 

حالا کافیه که جست‌وجو رو تو رویداد TextChanged انجام بدیم:

Sub EditText1_TextChanged (Old As String, New As String)
  ListView1.Clear
  For i = 0 To lText1.Size - 1
      Dim Search As String
      Search = lText1.Get(i)

      If Search.Contains(EditText1.Text)=True Then
          ListView1.AddTwoLines2(Search , lText2.Get(i) , Search)
      End If
  Next
End Sub

اول از همه اومدیم لیست‌ویو رو Clear کردیم.

بعد به تعداد آیتم هایی که داشت(داخل متغیر لیست ذخیره کردیم)، چک کردیم که آیا متن سرچ شده در ادیت تکست، داخل اون آتم هست یا نه؛ اگر بود، به لیست ویو همون آیتم و Text2 رو اضافه می کنیم و اگر نبود هم که هیچی !!!! :):):):)

 

به همین سادگی :eynak::eynak::eynak::eynak:

اینم سورس:

ListView_Search.zip

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • Salar82 عنوان را به **جست‌وجو در لیست ویو(بدون دیتابیس)** تغییر داد

سلام" جواب نگرفتم. موقع تایپ ، صفحه رو خالی می کنه اما چیزی پیدا نمی کنه.

ببینید این بخشی از سورس منه.

اینجا

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در در 27 اردیبهشت 1399 در 09:28، Salar82 گفته است :

در مرحله اول، میایم آیتم ها رو به لیست ویو اضافه می‌کنیم:


For i = 1 To 15
	ListView1.AddTwoLines("#SomeText" & i , "Text" & i)
	lText1.Add("#SomeText" & i)
	lText2.Add("Text" & i)
Next

اینجا برای اینکه Text آیتم‌ها رو داشته باشیم، اومدیم Text1 و Text2 هر کدوم رو داخل یه متغیر لیست، ذخیره کردیم.

اینجا متن1 و 2 هر آیتم رو به دوتا متغیر از نوع لیست، اضافه کردیم و شما اینکار رو داخل سورستون انجام ندادین بخاطر همین چیزی رو نشون نمیده.

در ضمن شما اومدین برای هر آیتم لیست ویو، AddTwoLines رو نوشتین(یعنی حدود 110 خط) و اینکار به هیچ وجه اصولی نیست. با دیتابیس میشه اینکار رو تو 4 خط پیاده کرد.

 

:53::53::53::53:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنون. ولی آیتم های من هیچکدام یک چیز نیستند که بخوام بعنوان اون متن 1 و متن2 تعریف کنم. دیتابیس هم بلد نبودم. خصوصا اینکه میخواستم هر 2 خط رو داخل دیتابیس و نهایتا داخل برنامه بیاره.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 8 ساعت قبل، sina2751 گفته است :

ممنون. ولی آیتم های من هیچکدام یک چیز نیستند که بخوام بعنوان اون متن 1 و متن2 تعریف کنم. دیتابیس هم بلد نبودم. خصوصا اینکه میخواستم هر 2 خط رو داخل دیتابیس و نهایتا داخل برنامه بیاره.

مشکلی ایجاد نمی‌کنه دوست عزیز

شما خط اول و دوم هر آیتم رو به لیست‌ها(lText1 , lText2) اضافه(Add) کنید درست میشه.

ولی اگه با دیتابیس باشه، خیلی کارِتون برای کدنویسی راحت تر میشه.

آموزش دیتابیس هم داخل انجمن هست؛ پیشنهاد می‌کنم حتما کار با اون رو یاد بگیرید:

 

 

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...