PDA

View Full Version : ایجاد یک پنجره Showmodalواستفاده از آن به عنوان Confirm



#Faranak
یک شنبه 09 خرداد 1389, 21:24 عصر
سلام .
من می خوام در صفحه اول وقتی کاربر روی button1کلیک می کنه webformدوم رو به صورت showmodal باز کنم وازآن به عنوان confirm استفاده کنم برای باز کردن webform2به صورت
نوشتم که اصلا کار نمی کنه:



Response.Write("<script>window.showmodaldialog('Default2.aspx','',dialogto p:0; dialogleft:0; dialogwidth:35; dialogheigth:35')>\"</script>");



چه جوری می تونم webform2را به صورت showmodalباز کنم؟

Peyman.Gh
یک شنبه 09 خرداد 1389, 22:32 عصر
<script language=javascript type="text/javascript">
function p() {
window.showModalDialog("default.aspx");
}
</script>

protected void Page_Load(object sender, EventArgs e)
{
Button1.Attributes.Add("onclick", "p()");
}

#Faranak
دوشنبه 10 خرداد 1389, 22:39 عصر
<script language=javascript type="text/javascript">
function p() {
window.showModalDialog("default.aspx");
}
</script>

protected void Page_Load(object sender, EventArgs e)
{
Button1.Attributes.Add("onclick", "p()");
}

من این کد رو امتحان کردم درست کار می کرد .مشکلش این بود که در بار اول که اجرا می شد پنجره ی modal باز نمی شد یعنی حتما باید 2بار کلیک بشه تا پنجره modal باز بشه.
سایز پنجره modal رو چه جوری کوچکتر کنم؟

Peyman.Gh
دوشنبه 10 خرداد 1389, 23:02 عصر
سایز پنجره modal رو چه جوری کوچکتر کنم؟

<script language=javascript type="text/javascript">
function p() {
window.showModalDialog("default.aspx",'','dialogHeight:150px;dialogWidth:200px');
}
</script>موفق باشید.

#Faranak
دوشنبه 10 خرداد 1389, 23:57 عصر
من از این پنجره modal به عنوان یک confirm استفاده می کنم.که دارای 2تا باتن است (بله و خیر).می خوام وقتی بله یا خیر کلیک شد این پنجره modal بسته بشه .چه طور می تونم پنجره ی modal شده رو ببندم؟

#Faranak
سه شنبه 11 خرداد 1389, 00:49 صبح
window.close(); رو امتحان كردي ؟

در سورس مربوط به صفحهmodalشده به این صورت نوشتم:



<script type="text/javascript">
function CloseThisWindow()
{
window.close();
}
</script>


وسپس:



protected void Button2_Click(object sender, EventArgs e)
{
//Button2.Attributes.Add("onclick", "window.close(); return false;");
Button1.Attributes.Add("onclick", "CloseThisWindow()");
}



که هیچ کدوم درست کار نکرد.

Peyman.Gh
سه شنبه 11 خرداد 1389, 00:58 صبح
protected void Page_Load(object sender, EventArgs e)
{
Button2.Attributes.Add("onclick", "window.close();");
}

#Faranak
سه شنبه 11 خرداد 1389, 01:10 صبح
protected void Page_Load(object sender, EventArgs e)
{
Button2.Attributes.Add("onclick", "window.close();");
}

همون جوابی که در کدهای قبلیم می گرفتم می گیرم یعنی اول پنجره از سایزی که تعیین کرده بودم بزرگتر می شه و با کلیک مجدد بسته می شه درصورتی که با یک بار کلیک باید بسته بشه.

Peyman.Gh
سه شنبه 11 خرداد 1389, 01:13 صبح
از چه کدهایی استفاده کردید؟

#Faranak
سه شنبه 11 خرداد 1389, 09:59 صبح
از چه کدهایی استفاده کردید؟

کدهایی که در پست 7 نوشتم .

البته یک بار هم باتن html گذاشتم و onclickآن را به صورت زیر handle کردم:


function Button2_onclick() {
window.close();
}


که فرم پنجره ی modal به خوبی بسته شد . اما چون می خوام جواب بله یا خیر به پنجره قبل برگردونم درباتن htmlدر رابطه با گرفتن متغیر ی که این جوابو ذخیره کنه مشکل دارم .

ali_zzr
سه شنبه 11 خرداد 1389, 11:20 صبح
من یک دفعه این کار رو میخواستم بکنم از این روش استفاده کردم.
توی متد لود صفحه چک کن ببین اگر پست بک هست یک قطعه کد تو صفحه رجیستر کن که صفحه رو ببنده
یه چیزی مثل این :


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

If IsPostBack Then
Dim script As ClientScriptManager
script = Page.ClientScript
script.RegisterClientScriptBlock(GetType(Page), "close", "<script type='text/javascript'>window.close()</script>")
End If
End Sub

ولی الان داشتم امتحان میکردم مثل اینکه تو فایرفاکس کار نمیکنه نمیدونم چرا ؟

Peyman.Gh
سه شنبه 11 خرداد 1389, 11:27 صبح
Button1.Attributes.Add("onclick", "window.close()");را باید در رویداد Page_Load بنویسید.

#Faranak
سه شنبه 11 خرداد 1389, 19:13 عصر
Button1.Attributes.Add("onclick", "window.close()");را باید در رویداد Page_Load بنویسید.

در مورد این روش هم ایتدا صفحه رو از سایز تهین شد ه بزرگ تر می کنه و با کلیک مجدد می بنده .آیا می شه با کلیک روی یک hyperlink یک پنجره modal رو باز کرد اگه می شه چه طوری؟

Peyman.Gh
سه شنبه 11 خرداد 1389, 19:16 عصر
آیا می شه با کلیک روی یک hyperlink یک پنجره modal رو باز کرد اگه می شه چه طوری؟
<a href="javascript:window.showModalDialog('default.aspx',' ','dialogHeight:150px;dialogWidth:200px');">HyperLink</a>موفق باشید.

#Faranak
سه شنبه 11 خرداد 1389, 21:33 عصر
روش حل این مشکل که وقتی روی باتن از نوع غیر html(باتن استاندارد )کلیک می کردم پنجره به جای این که یسته شود بزرگ می شد رو پیدا کردم کافیه در قسمت sourceزیر تگ headکد زیر رو اضافه کنیم:


<base target=_self>


در این صورت با یک بار کلیک بسته می شه.

حالا در برنامه ی من چون از این پنجره به عنوان confirmاستفاده می شه می خوام با کلیک شدن باتن بله یک سری کار انجام بشه حالا می خوام ببینم با توجه به این که هر دو باتن در pageloadهندل می شوند چه طور میتونم این دوتا رو از هم تفکیک کنم؟یعنی اگر باتن بله کلیک شد یک کار انجام شودمثلا به یک صفحه خاصی redirectکنیم باتن خیر کلیک شد یک کار دیگر.

Peyman.Gh
پنج شنبه 13 خرداد 1389, 00:17 صبح
منظور شما تفکیک Yes و No میباشد ؟!
http://www.barnamenevis.org/forum/attachment.php?attachmentid=50293&d=1275509867

#Faranak
پنج شنبه 13 خرداد 1389, 18:13 عصر
منظور شما تفکیک Yes و No میباشد ؟!
http://www.barnamenevis.org/forum/attachment.php?attachmentid=50293&d=1275509867

بله همینطوراست

Peyman.Gh
پنج شنبه 13 خرداد 1389, 18:32 عصر
بنظر من در پنجره ای که هنگام استفاده از Window.Close نمایش داده میشود نمیتوان برای Yes و No برنامه نوشت که عمل خاصی را انجام دهند.

اگر هدف نمایش یک پیغام میباشد از این روش میتوانید استفاده کنید :
<script language="javascript" type="text/javascript">
function p(){
var message = window.confirm('Your Message');
if(message==true)
{
//
}
else
{
//
}
</script>

موفق باشید.

#Faranak
پنج شنبه 27 خرداد 1389, 21:39 عصر
فکر می کنم باکد جاوااسکریپت بشه این کارو کرد چون قبلا دیده بودم یکی این کارو با جاوااسکریپت انجام داده بود ولی دقیقا نمی دونم چه جوری؟آیا کسی در این موردمی تونه راهنمایی کنه؟

Peyman.Gh
پنج شنبه 27 خرداد 1389, 21:44 عصر
فکر میکنم YES و NO فقط یک مقدار True و False را برگشت میدهند.

#Faranak
پنج شنبه 27 خرداد 1389, 23:38 عصر
فکر میکنم YES و NO فقط یک مقدار True و False را برگشت میدهند.

بله .اما این yes,Noرو چه طور از کد جاوااسکریپت به کد سی شارپ در پنجره ی قبلی پاس بدم تا بتونم از این نتیجه ها استفاده کنم؟من در کد جاوااسکریپت قبلا دیدم که از یک تابع به نام returnvalueداره چه جوری ازش استفاده کنم؟

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

hamedsabzian
جمعه 28 خرداد 1389, 00:22 صبح
پیشنهاد میکنم از JQuery استفاده کنید.
برنامه ای که در ضمیمه کذاشتم مشاهده کنید. هم میشه ازش به عنوان Confirm استفاده کرد، هم میشه توش کترل های ASP و هر چیز دیگه ای گذاشت.