PDA

View Full Version : سوال: جستجو با استفاده از ajax ,jquery



yekta99
دوشنبه 01 آبان 1391, 21:01 عصر
سلام دوستان

من میخوام با تایپ توی یه textbox ، اسم هایی رو که توی یه جدول ذخیره شدن رو جستجو کنم و توی صفحه نمایش بدم ، میخوام به ازای تایپ هر حرف ، اسم هایی که شامل اون حرف هستند رو نمایش بده ، و با تایپ بیشتر حروف نمایش اسم ها محدود تر بشه ،

یه چیزی شبیه این
http://nakajima.github.com/jquery-livesearch/

با این تفاوت که امکان انتخاب اسم مورد نظر رو داشته باشم و زمانی که اسم مورد نظر انتخاب شد از جدول نمایش حذف بشه

کار کردن با jquery و ajax رو تازه شروه کردم و اطلاع کافی درمورد نحوه استفاده از دستوراتش رو ندارم ،

کد:
public static bool SearchName(string name)
{
Model1Container mc = new Model1Container();

var ShowList = mc.People.Where(s => s.FirstName.Contains(name));
if (ShowList != null)
return true;
else
return false;
}
ولی متغیر showlist مقدرا null رو بر می گردونه


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

$(document).ready(function () {

$(".txtSearch").keyup(function ()

$.ajax({
type: "POST",
dataType: "json",
contentType: "application/json,charset=utf-8",
url: "Default.aspx/SearchName",
data: "{name:'" + $(".txtSearch").val() + "'}",
success: function (){
},
error: function () {
alert("error");
}
});
});
});

ممنون میشم راهنمایی کنید.

amirzandi
سه شنبه 02 آبان 1391, 07:39 صبح
قسمت success رو اشتباه نوشتین :


success: sfunction

function sfunction(response){
alert(response.d);
}

rezaei_y
سه شنبه 02 آبان 1391, 09:28 صبح
یه نگاهی به این تایپیک بنداز (http://barnamenevis.org/showthread.php?364623-%D9%85%D9%87%D9%85-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%B3%D8%B1%DA%86-%D9%84%D8%AD%D8%B8%D9%87-%D8%A7%DB%8C-%D8%9F%D8%9F&p=1610578#post1610578)

yekta99
سه شنبه 02 آبان 1391, 15:13 عصر
ممنون دوستان
ولی من میخوام نتیجه رو خارج از textbox مثلا توی یه جدول نمایش بدم ( مثل لینکی که بالا گذاشتم )

rezaei_y
سه شنبه 02 آبان 1391, 16:52 عصر
http://www.designchemical.com/blog/index.php/jquery/live-text-search-function-using-jquery/

yekta99
سه شنبه 02 آبان 1391, 20:20 عصر
من برای نمایش اسم ها مثل این مثال ، داده های جدولم رو با یه Repeater توی صفحه نمایش دادم .

ولی اگه بخوام نمایش اسم ها هم با jquery و ajax باشه باید چیکار کنم ، قسمت کد نویسی [WebMethod] رو چی بنویسم ؟


مثلا چیزی که خودم نوشتم این خط مقدار null بر می گردونه
var ShowList = mc.People.Where(s => s.FirstName.Contains(name));

rezaei_y
سه شنبه 02 آبان 1391, 21:13 عصر
کاری که باید انجام بدی اینه که ابتدا تمام سطرها رو توی گرید نمایش بدی سپس با جی کوئری هر متنی که داخل باکس نوشته میشه رو بگیری و هر سطری که از اون الگوی مد نظرت تبعیت نمیکنه رو مخفی کنی

مثلا میخوای اسامی که با محمد شروع میشن رو نمایش بدی پس بقیه اسامی را مخفی کن


$("#txtname").change(function (e) {


var test = $('#txtname').text();

$("table[id*=GridView1] tr").show();
if (test.length != 0) {
$("table[id*=GridView1] tr:has('span')").each(function () {
if ($(this).find("span[id*=lblName]:contains(" + test + ")").length == 0)
$(this).hide();
});
}
});

meisam3322
سه شنبه 02 آبان 1391, 21:34 عصر
خوب عزیزه من ، شما اول میان متن مورد نظر برای جستجو رو به صفحه ای کار جستجو رو انجام میده ارسال می کنی ، بعد بیا نتایج جستجو رو به صورت فایل xml به درخواست کننده ارسال کن حالا خیلی راحت میتونی با جاوا اسکریپت و ساخت جدول نتیج رو به صورت ردیف به ردیف نشون بدی + میتونی با استفاده از SPAN کلمه جستجو شده رو نیز در نتیجه با background متفاوت نشون بدی...

yekta99
چهارشنبه 03 آبان 1391, 19:43 عصر
ممنون از توجهتون دوستان

با gridview نتونستم جستجو رو انجام بدم ولی با repeater و با کمک این لینک http://www.designchemical.com/blog/index.php/jquery/live-text-search-function-using-jquery/ جستجو شبیه live Search که نمونش رو بالا گذاشتم رو ساختم ولی میخوام بدونم اگه بخوام از ajax توی برنامه استفاده کنم باید چجوری دستورات رو بنویسم ؟؟؟

و مورد دیگه اینکه بین جواب ها بشه اسم مورد نظر رو انتخاب کرد تا توی textbox نمایش داده بشه (مثل autocomplete ) و از جواب ها حذف بشه.

(با entity کار می کنم )