PDA

View Full Version : سوال: فراخوانی رویداد کلیک سمت سرور در jquery



pand_r
شنبه 21 اسفند 1389, 10:20 صبح
سلام
میخواستم وقتی روی دکمه حذف رکورد موجود در gridview میزنم یک confirmation که با jquery درست کردم باز بشه و وقتی ok کرد رویداد کلیک دکمه حذف صدا زده بشه و رکورد مورد نظرم حذف بشه؟ چطور میتونم رویداد کلیک که سمت سرور را توی jquery صدا بزنم؟
خودم اینجوری نوشتم ولی رویداد کلیک نمیشه static تعریف کرد:
کد jquery دکمه yes:

$('.yes').bind('click', function(){

$.ajax({
type: "POST",
cache: false,
url: "contactmsg.aspx/del",
contentType: "application/json; charset=utf-8",
data: "{}",
dataType: "json",
async: false,
timeout: 1000,
error: function() {
alert('do not support ajax');

},
success: function(msg) {
// Replace the div's content with the page method's return.

$("#Result").text(msg.d);

}

});
});

رویداد کلیک دکمه:

[WebMethod]

protected void imgb_del_Click(object sender, ImageClickEventArgs e)
{
ImageButton img = (ImageButton)sender;
GridViewRow selectrow = (GridViewRow)img.Parent.Parent;
strcode = ((Label)GridView1.Rows[selectrow.RowIndex].FindControl("lcode")).Text;
کد حذف رکورد...
databind();
}

eleboys
شنبه 21 اسفند 1389, 21:52 عصر
روش های مختلفی برای حل مشکل شما هست دوست عزیز اما حالاکه می خوای خودت رو به دردسر بیاندازی بهترین و زیباترین راه رو انتخاب کن. توضیحش اینه که توی هر ردیف از دیتاگریدت بجای دکمه سرورساید از دکمه کلایت ساید استفاده کن که onclick هر دکمه یه تابع delete جاواسکریپتی (که خودتون می نویسید) رو صدا میزنه با پاس کردن آیدی ردیفی که میخواد پاک کنه به اون تایع. در اون تابع پیام رو به کاربر نمایش بدید و اگر ok داد یه درخواست آژاکسی به سرور به همراه آیدی ردیفی که می خواید پاک کنید به سرور بفرستید (وب سرویس یا هر روش دیگه) در صورت موفق بودن درخواست ajax یعنی ردیف با موفقیت از دیتابیس پاک شده پس شما باید کلاینت ساید هم او ردیف رو hide کنید و به کاربر پیام موفقیت بدید.

===================
نوشته های فنی نیما بغدادی
http://nima.megapars.ir