PDA

View Full Version : سوال: عدم اجرا شدن رویداد کلیک و postbock شدن!



ricky22
یک شنبه 16 خرداد 1389, 09:26 صبح
سلام دوستان.
من یک دیالوگ ساختم با jquery اما رویداد کلیک دکمه ی aspx ان اجرا نمیشه لطفا بررسی کنید و به من کمک کنید
مرسی.
ادرس فایل aspx
Problem\development-bundle\demos\dialog\Default

mehdi.mousavi
سه شنبه 18 خرداد 1389, 17:59 عصر
سلام دوستان. من یک دیالوگ ساختم با jquery اما رویداد کلیک دکمه ی aspx ان اجرا نمیشه لطفا بررسی کنید و به من کمک کنید مرسی.
ادرس فایل aspx
Problem\development-bundle\demos\dialog\Default


سلام.
من کد شما رو دیدم. دلیل اول فراخوان نشدن Handler مربوطه سمت سرور این هستش که jQuery UI Dialog کد HTML مورد نظر رو خارج از form ایجاد میکنه، در نتیجه فرم مورد نظر Submit نمیشه.

برای رفع این مشکل کد JavaScript خودتون رو به کد زیر تغییر بدید:

$(function () {
$('#dialog').dialog({
autoOpen: false,
show: 'blind',
hide: 'explode',
buttons: {
'Whatever Button': function () {
$('#<%=Button1.ClientID%>').click();
$(this).dialog('close');
}
}
}).parent().appendTo($("form:first"));


$('#opener').click(function () {
$('#dialog').dialog('open');
return false;
});
});


همونطوریکه میبینید، من فقط با یک appendTo جای کد تولید شده رو تغییر دادم و اونو به درون فرم منتقل کردم. اما یک تغییر عمده دیگه هم در این کد میبینید. اونم ایجاد یک Button با استفاده از امکان Dialog هستش...

در نهایت، یک Button1 گذاشتم رو صفحه، display:none کردم Style اش رو (تا دیده نشه) و در نهایت هنگام Click شدن روش، اون Button رو Click میکنم (سمت کد JavaScript) که در نهایت منجر به فراخوانی Handler شما میشه:

<asp:Button ID="Button1" runat="server" Text="Button" Style="display: none;" OnClick="Button1_Click" />

موفق باشید.

پاورقی: لطفا از ارسال یک تاپیک به دو بخش خودداری کنید. من تاپیک مربوطه در بخش jQuery رو حذف کردم.

ricky22
سه شنبه 18 خرداد 1389, 19:06 عصر
سلام کلمات نمی تونه عمق تشکر من نسبت به شما رو نشون بده
چشم!
اخه جناب باقری یک من رو جریمه کردن چرا تاپیک jquery رو اینجا زدم(همین سوال)
باز هم ممنون

mehdi.mousavi
سه شنبه 18 خرداد 1389, 19:12 عصر
سلام کلمات نمی تونه عمق تشکر من نسبت به شما رو نشون بده
چشم! اخه جناب باقری یک من رو جریمه کردن چرا تاپیک jquery رو اینجا زدم(همین سوال)
باز هم ممنون

سلام.
خواهش میکنم. قابلی نداشت. وقتی زیر و بن هر چیزی رو یاد بگیرید، دیگه ترکیب کردن تکنولوژیها براتون پیچیده و دور از دسترس نخواهد بود.

در مورد جریمه و ... هم نظری ندارم. امروزه بسیاری از تکنولوژیها طوری به هم وابسته شدن که حقیقتا مرزبندی اونها دشواره. این سوال شما هم به jQuery مربوط میشه، هم به ASP.NET، هم به Web Development و ...

تنها خواهش من اینه که اگر در یک بخش سوالتون رو Submit کردید، دیگه اونو در بخش دیگه ای Submit نکنید.

موفق باشید.

hamedsabzian
سه شنبه 18 خرداد 1389, 22:01 عصر
واقعا از شما ممنونم!!!
یک روز تمام، باهاش ور رفتم ولی نشد!
کد رو تغییر دادم، که نیاز به دکمه ی Hidden نباشه.
var doPostBack='False';
$(function(){
// jQuery UI Dialog
$('#dialog').dialog({
autoOpen: false,
width: 400,
modal: true,
resizable: false,
buttons: {
"Submit Form": function() {
doPostBack='True';
$('#<%=BS.ClientID%>').click();
},
"Cancel": function() {
$(this).dialog("close");
}
}
}).parent().appendTo($("form:first"));

$('#<%=BS.ClientID%>').click(function(){
if(doPostBack=='False')
{
$('#dialog').dialog('open');
return false;
}
doPostBack='False';
return true;
});
});
بازم ممنونم. (کاش میشد چندین بار دیگه دکمه ی تشکر رو می زدم).