رفتن به مطلب
  • 0

جستجو در دیتابیس با مولتی پنل


majid08

سوال

سلام

من یه مولتی پنل دارم وقتی میخام جستجو کنم هر چی مینویسم این همه ایتم ها رو میاره

مثلا مینویسم م همه اونایی م توشون هست میاره دوباره مینویسم ج باز اوناییی که ج دارن رو اضافه میکنه دوباره مینویسم ی دوباره اضافه میکنه هر چی مینویسم بجای اینکه همونو بیاره هی اضافه میکنه

این کد منه لطفا کمک کنید


Sub EditText1_TextChanged (Old As String, New As String)

	 Dim Cr As Cursor
 Cr = MyBank.ExecQuery("SELECT * FROM tbl1  WHERE  matn1 LIKE '%"&EditText1.Text&"%'  ")
 For i = 0 To Cr.RowCount - 1
  Cr.Position = i
  Dim p As Panel
  p.Initialize("p")
  sv.Panel.AddView(p,1%x,offsetY,99%x,100%y)
  offsetY = offsetY + 22%y
  p.LoadLayout("item")
  p.Tag = Cr.GetInt("id")
  Button1.Tag= Cr.GetInt("id")
  Label1.Text = Cr.GetString("matn1")
  fav1.Tag= Cr.GetInt("id")
Next
لینک ارسال
به اشتراک گذاری در سایت های دیگر

14 پاسخ به این سوال تاکنون داده شده است

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

این کدهای که نوشتم رو توی Sub EditText1_TextChanged بزار و کدهای که در پست بالا گذاشتی از جمله Sub LoadFilterItem رو پاک کن فقط همین کد های رو که نوشتم بزار

Sub EditText1_TextChanged (Old As String, New As String)

	sv.Panel.RemoveAllViews
	offsetY = sv.Height - sv.Height
	sv.ScrollPosition = offsetY

 	 Dim Cr As Cursor
	 Cr = MyBank.ExecQuery("SELECT * FROM tbl1  WHERE  matn1 LIKE '%"&EditText1.Text&"%'  ")
 	For i = 0 To Cr.RowCount - 1
  	Cr.Position = i
  	Dim p As Panel
  	p.Initialize("p")
  	sv.Panel.AddView(p,1%x,offsetY,99%x,100%y)
  	offsetY = offsetY + 22%y
  	p.LoadLayout("item")
  	p.Tag = Cr.GetInt("id")
  	Button1.Tag= Cr.GetInt("id")
  	Label1.Text = Cr.GetString("matn1")
 	 fav1.Tag= Cr.GetInt("id")
		
	sv.Panel.Height = offsetY	

	Next

End Sub

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

سلام لطفا اموزش یا سورسشو بزارید

تاپیک بزنید برای سوالتون هموطن

تاپیک های قدیمی هم نیارید بالا...

:gol:

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

 

این کد رو تست کنید :

Sub LoadFilterItem(value As String)
	 Dim Cr As Cursor
 Cr = MyBank.ExecQuery("SELECT * FROM tbl1  WHERE  matn1 LIKE '%"&value&"%' ")
 For i = 0 To Cr.RowCount - 1
  Cr.Position = i
  Dim p As Panel
  p.Initialize("p")
  sv.Panel.AddView(p,1%x,offsetY,99%x,100%y)
  offsetY = offsetY + 22%y
  p.LoadLayout("item")
  p.Tag = Cr.GetInt("id")
  Button1.Tag= Cr.GetInt("id")
  Label1.Text = Cr.GetString("matn1")
  fav1.Tag= Cr.GetInt("id")
 End Sub

 
Sub EditText1_TextChanged (Old As String, New As String)
   LoadFilterItem(New)
End Sub

بعد اگه دیدید درست جواب نمیده توی کد رویداد TextChanged  رو اینجوری بنویسید :

Sub EditText1_TextChanged (Old As String, New As String)
   LoadFilterItem(old&New)
End Sub

کدو من تست کردم کاری انجام نمیده  دستور پاک کردن نداره 

ListView1.Clear 

البته این برای اینی که مطلب ما تو لیست ویو باشه 

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

قبل از کدهاتون بیا RemoveAllView کن و لایه رو دوباره بخون و بعد هم کدهای جست و جو رو قرار بده

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

قبل از کدهاتون بیا RemoveAllView کن و لایه رو دوباره بخون و بعد هم کدهای جست و جو رو قرار بده

 

اقای ایزدی میشه با کد توضیح بدید

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

چرا جواب سوالات منو کسی نمیدونه

یعنی من به حساب نمیام یا کسی بلد نیست یا حوصله ندارین؟

 

از صبح چنتا سوال پرسیدم هیچ کسی بلد نیست یعنی؟؟؟؟؟؟؟؟

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

این کد رو تست کنید :

Sub LoadFilterItem(value As String)
	 Dim Cr As Cursor
 Cr = MyBank.ExecQuery("SELECT * FROM tbl1  WHERE  matn1 LIKE '%"&value&"%' ")
 For i = 0 To Cr.RowCount - 1
  Cr.Position = i
  Dim p As Panel
  p.Initialize("p")
  sv.Panel.AddView(p,1%x,offsetY,99%x,100%y)
  offsetY = offsetY + 22%y
  p.LoadLayout("item")
  p.Tag = Cr.GetInt("id")
  Button1.Tag= Cr.GetInt("id")
  Label1.Text = Cr.GetString("matn1")
  fav1.Tag= Cr.GetInt("id")
 End Sub

 
Sub EditText1_TextChanged (Old As String, New As String)
   LoadFilterItem(New)
End Sub

بعد اگه دیدید درست جواب نمیده توی کد رویداد TextChanged  رو اینجوری بنویسید :

Sub EditText1_TextChanged (Old As String, New As String)
   LoadFilterItem(old&New)
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

ممنونم که جواب دادین ولی فرقی نکرد داداش

   

دوست عزیز این کدها رو قرار بده برای بنده جواب داده :ok: 

این کدهارو تو Sub EditText1_TextChanged  دقیقا تو خط اول قرار بده قبل از فراخونی دیتابیست

	Sv.Panel.RemoveAllViews
	offsetY = sv.Height - sv.Height
	sv.ScrollPosition = offsetY
لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

   

دوست عزیز این کدها رو قرار بده برای بنده جواب داده :ok: 

این کدهارو تو Sub EditText1_TextChanged  دقیقا تو خط اول قرار بده قبل از فراخونی دیتابیست

	Sv.Panel.RemoveAllViews
	offsetY = sv.Height - sv.Height
	sv.ScrollPosition = offsetY

سلام داداش

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

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

سلام داداش

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

 

تو این کد ها قبل از next این کد رو ScrollView1.Panel.Height = offsetY رو اضافه کن

Sub EditText1_TextChanged (Old As String, New As String)

	 Dim Cr As Cursor
 Cr = MyBank.ExecQuery("SELECT * FROM tbl1  WHERE  matn1 LIKE '%"&EditText1.Text&"%'  ")
 For i = 0 To Cr.RowCount - 1
  Cr.Position = i
  Dim p As Panel
  p.Initialize("p")
  sv.Panel.AddView(p,1%x,offsetY,99%x,100%y)
  offsetY = offsetY + 22%y
  p.LoadLayout("item")
  p.Tag = Cr.GetInt("id")
  Button1.Tag= Cr.GetInt("id")
  Label1.Text = Cr.GetString("matn1")
  fav1.Tag= Cr.GetInt("id")
Next
لینک ارسال
به اشتراک گذاری در سایت های دیگر

الان کد کلا شده این باز اگه بیشتر 1 کاراکتر تایپ کنم هیچی نمیاره

Sub EditText1_TextChanged (Old As String, New As String)
	sv.Panel.RemoveAllViews
	offsetY = sv.Height - sv.Height
	sv.ScrollPosition = offsetY
 LoadFilterItem(Old&New)
End Sub


Sub LoadFilterItem(value As String)

	 Dim Cr As Cursor
 Cr = MyBank.ExecQuery("SELECT * FROM tbl1  WHERE  matn1 LIKE '%"&value&"%' ")
 For i = 0 To Cr.RowCount - 1
  Cr.Position = i
  Dim p As Panel
  p.Initialize("p")
  sv.Panel.AddView(p,1%x,offsetY,99%x,100%y)
  offsetY = offsetY + 22%y
  p.LoadLayout("item")
  p.Tag = Cr.GetInt("id")
  Button1.Tag= Cr.GetInt("id")
  Label1.Text = Cr.GetString("matn1")
  fav1.Tag= Cr.GetInt("id")
  star.Initialize("")
  star.Text=Cr.GetInt("star")
  Button1.Gravity=Gravity.CENTER_HORIZONTAL
	 End If
	 
	sv.Panel.Height = offsetY
 Next
لینک ارسال
به اشتراک گذاری در سایت های دیگر

دیدم تشکر خالی کمه برا همین گفتم بگم تشکر 

فقط چندتا نکته 

اگر به پنل رنگ داده باشید دوباره تو حلقه فور پست قبل باید دوباره به پنل رنگ بدید 

چون سفید میشه 

و اینکه با سرچ کردن متنم چپ چین شد ومن دوباره بهش گراویتی دادم وحل شد 

واگر دیدید سرچ کردید و پنل بالاتر یا پایینتر اومد توخط 

sv.Panel.AddView(p,1%x,offsetY+5%y,99%x,100%y)

با کم زیاد کردن 5%Y میتونید به نتیجه مطلوب برسید 

اگر کسی چیزی از حرف نفهمید بگه کد بزارم

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

بایگانی شده

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

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

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