בעיה בשימוש ב Jquery autocomplate
-
אני משתמש ברכיב ההשלמה האוט' של Jquery-UI
אך משום מה התצוגה של ההשלמה לא פועלת טוב, דהיינו זה נראה כך:
כלומר, הוא מחזיר את התוצאות ואפי' רואים 4 שורות קטנות מתחת לתיבת הטקסט שנוצרות בגלל זה, אך משום מה זה לא מוצג בצורה נורמלית ולא רואים את התוכן...
כתבתי את הקוד כך:$(document).ready(function () { $("#search").autocomplete({ source: "/Customers/SearchTag" }); });
ובשרת את הקוד הבא:
public ActionResult SearchTag(string term) { var tag = db.Customers.Where(a => a.FirstName.Contains(term) || a.LastName.Contains(term)).ToList(); return this.Json(tag, JsonRequestBehavior.AllowGet); }
אולי זה נובע מחמת שJqueyUi משתמשים בספריית css משלהם, ובפרוייקט שלי מצורפת גם ספריית Bootstrap דבר שמביא לתוצאה הזו, או שאין לכך קשר?
תודה רבה!
פורסם במקור בפורום CODE613 ב04/11/2015 10:38 (+02:00)
-
הנה כאן יש קישור.
אם כי אני לא מבין כיצד זה יעזור לך.. שהרי זה לא יכול לעבוד בלי שיש שרת שמחזיר את תוצאות ההשלמה..
תודה רבה!פורסם במקור בפורום CODE613 ב04/11/2015 15:28 (+02:00)
-
הנה כאן יש קישור.
אם כי אני לא מבין כיצד זה יעזור לך.. שהרי זה לא יכול לעבוד בלי שיש שרת שמחזיר את תוצאות ההשלמה..
תודה רבה!https://jsfiddle.net/7LbquL8c/1/
פורסם במקור בפורום CODE613 ב05/11/2015 10:51 (+02:00)
-
@דוד ל.ט.
אם כי אני לא מבין כיצד זה יעזור לך.. שהרי זה לא יכול לעבוד בלי שיש שרת שמחזיר את תוצאות ההשלמה..
תודה רבה!משום מה זה לא עובד לי..
זה לא מחזיר שום תוצאות :? :? :?פורסם במקור בפורום CODE613 ב05/11/2015 19:34 (+02:00)
-
לא יודע, אצלי עובד רק ככה https://jsfiddle.net/7LbquL8c/5/
פורסם במקור בפורום CODE613 ב05/11/2015 20:44 (+02:00)
-
כדי לעשות הבחנה מבדלת מה שורש הבעיה, השתמש תחילה ברשימת ערכים קבועה ובדוק אם ההשלמה האוטומטית עובדת
אם היא עובדת החלף את הערכים הקבועים בערכים ממסד הנתונים והמשך לבדוק באיזה שלב חל השיבושבעיקרון אתה צודק רק שהוא אומר שהבעיה היא בעיצוב כי רשימה עם הערכים כן נפתחת לו רק מכווצת באופן מוזר
פורסם במקור בפורום CODE613 ב05/11/2015 22:27 (+02:00)
-
בדקתי זאת שוב כמו שרחמים אמר.. ואכן את הרשימה המוגדרת מראש הוא מחזיר יפה.
כנראה שאכן הבעיה היא בקוד של צד השרת.
בשורה הזאת הוא מקבל את הנתונים:var tag = db.Customers.Where(a => a.FirstName.Contains(term) || a.LastName.Contains(term)).ToList();
וזה עובד טוב, הנתונים חוזרים בצורה של ליסט.
אח"כ הוא מחזיר אותם בתור JSONreturn Json(tag, JsonRequestBehavior.AllowGet);
אם אני מבין נכון הבעיה היא שהDB מחזיר אובייקטים שלמים שבהם מופיעה האות הנדרשת בתור שם משפחה/פרטי, ואח"כ הוא ממיר אותו לJSON,
אבל התצוגה צריכה להציג רק את השם משפחה/פרטי והווידג'ט של ההשלמה האוט' של JQUERY לא יודע לעשות זאת, כיון שהוא לא יודע לבד מאיזה שדה אני רוצה להציג את הנתונים..פורסם במקור בפורום CODE613 ב06/11/2015 12:09 (+02:00)
-
הוספתי את הקטע הזה, כדי ליצור מחרוזת רק עם השם הפרטי ושם המשפחה, ואכן זה עובד מעולה!!
List<string> list = new List<string>(); foreach (var item in tag) { list.Add(item.FirstName + " " + item.LastName); } return Json(list, JsonRequestBehavior.AllowGet);
תודה רבה
פורסם במקור בפורום CODE613 ב08/11/2015 00:41 (+02:00)