رفتن به مطلب
Salar82

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

پست های پیشنهاد شده

Salar82    168

سلام

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

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

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

  • پسندیدن 4
  • تشکر 1

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Salar82    168
در در 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:

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


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

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

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


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
Salar82    168
در 8 ساعت قبل، sina2751 گفته است :

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

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

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

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

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

 

 

موفق باشید

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


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...