سلام دوستان
من به اموزش موجود در وبسایت درباره درگ و دراپ متد سرچ اضافه کردم. تازمانیکه کلمه ای سرچ میکنم و بعد درگ رو انجام میدم همه چی درست و مرتبه.ولی زمانیکه چندین بار تایپ کنم و پاک کنم بعد محصولی رو اضافه کنم به تعداد دفعاتی که به تابع getdata بصورت ajax وصل شدم همون کلمه درگ میشه.مثلا اگر دوبار جستجو انجام داده باشم کلمه ای رو که درگ میکنم دوبار نمایش میده نه یکبار.
ممنون
کد ویو:
@{ ViewBag.Title = "SelectStuff"; Layout = "~/Views/Shared/_AdminLayout.cshtml"; } <style type="text/css"> table, td { background-color: azure; border: double; } #dvright, #dvleft { background-color: azure; height: 200px; width: 300px; } </style> <table> <tr> <td> <h1>Product List</h1> </td> <td> <h1>Selected Products</h1> </td> </tr> <tr> <td> <div id="dvleft"> <ul id="lstproducts"></ul> </div> </td> <td> <div id="dvright"> <ul id="lstselectedproducts"></ul> </div> </td> </tr> </table> @section scripts{ <script type="text/javascript"> $(document).ready(function () { loadProducts(); //Function to set events for Drag-Drop function setEvents() { var lstProducts = $('li'); //Set Drag on Each 'li' in the list $.each(lstProducts, function (idx, val) { $('li').on('dragstart', function (evt) { evt.originalEvent.dataTransfer.setData("Text", evt.target.textContent); evt.target.draggable = false; }); }); //Set the Drop on the <div> $("#dvright").on('drop', function (evt) { evt.preventDefault(); var data = evt.originalEvent.dataTransfer.getData("Text"); var lst = $("#lstselectedproducts"); var li = "<li>" + data + "</li>" + "<input type='text'/>"; li.textContent = data; lst.append(li); }); //The dragover $("#dvright").on('dragover', function (evt) { evt.preventDefault(); }); } ///Function to load products using call to WEB API function loadProducts() { var items = ""; $.ajax({ url: "/Admin/SelectStuff2", type: "GET", }).done(function (resp) { $.each(resp, function (idx, val) { items += "<li draggable='true'>" + val.Name+val.Id+ "</li>"; }); $("#lstproducts").html(items); setEvents(); }).error(function (err) { alert("Error! " + err.status); }); } }); </script> }
کد getdata:
public ActionResult GetData(string str) { var query1 = (from p in db.Stuffs orderby p.Id ascending where p.Name.Contains(str) select p).Take(10); var query2 = (from p in db.Stuffs orderby p.Id ascending select p); if (str == "") { return Json(query2.ToList(), JsonRequestBehavior.AllowGet); } else { return Json(query1.ToList(), JsonRequestBehavior.AllowGet); } }
نمیشه مشکل رو حدس زد
کد ها رو هم دیدم و به نظر درست میاد
باید کدهاتون رو Trace کنید تا متوجه خطا بشید
ممنون
من چطور میتونم کدهای ajax رو trace کنم؟
مشکلش بنظر میرسه که یه جایی داده هایی که از جدول میخونه در هر بار سرچ صفر نمیشه وداده ها روی هم جمع میشن .فقط اگر قبل از هر بار سرچ یکبار صفحه رو رفرش کنم مشکل حل میشه که اونم دیتاهای قبلی نمیمونه.
میتونید از فایرباگ استفاده کنید
البته ابراز های دیگه ای هم هست که اسمشون خاطم نیست
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)