کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
سلام دوستان !
حتماً شما هم بسیاری از مواقع نیازمند شده اید که صفحه ای را به صورت مستقل و یا به صورت popup و یا با اندازه مشخص و ... باز کنید و با این مشکل موجه بوده اید و مجبر به استفاده از کد های جاوااسکریپت چون windows.open شده اید!
پس در بسیاری از مواقع که نیاز به این کار در حالت server side بوده است، بسیار به زحمت افتاده اید. کلاس زیر مشکل شما را حل خواهد کرد :
در ضمن دوستان توجه کنند که این کلاس توسط بنده نوشته نشده است !
public static class ResponseHelper
{
public static void Redirect(string url, string target, string windowFeatures)
{
HttpContext context = HttpContext.Current;
if ((String.IsNullOrEmpty(target) || target.Equals("_self", StringComparison.OrdinalIgnoreCase)) && String.IsNullOrEmpty(windowFeatures))
{
context.Response.Redirect(url);
}
else
{
Page page = (Page)context.Handler; if (page == null)
{
throw new InvalidOperationException("Cannot redirect to new window outside Page context.");
}
url = page.ResolveClientUrl(url);
string script;
if (!String.IsNullOrEmpty(windowFeatures)) { script = @"window.open(""{0}"", ""{1}"", ""{2}"");"; }
else
{
script = @"window.open(""{0}"", ""{1}"");";
}
script = String.Format(script, url, target, windowFeatures);
ScriptManager.RegisterStartupScript(page, typeof(Page), "Redirect", script, true);
}
}
}
حال می توان به راحتی از کلاس بالا به اشکال مختلفن استفاده کرد.
مثلاً :
ResponseHelper.Redirect("Arvan.ir", "_blank", "height=300,width=300");
دوستان توجه داشته باشند که از تمام option های زیر می توان استفاده کرد:
'height=300,width=300,top=200,left=250,status=no,t oolbar=no,menubar=no,location=no,titlebar=no'
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
ممنون من این مشکلو داشتم تستش کردم جواب داد
فقط یه سوال چطور میشه پنجره کوچیکی روی پنجره اصلی باز کرد که مانع دید کنترل های صفحه اصلی نشه (بدون Ajax)
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
ممنون. خیلی خوبه.
فقط اگه ممکنه منبع رو هم ذکر کنید.
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
نقل قول:
نوشته شده توسط
imanasp
فقط یه سوال چطور میشه پنجره کوچیکی روی پنجره اصلی باز کرد که مانع دید کنترل های صفحه اصلی نشه (بدون Ajax)
می تونی از windows control های telerik استفاده کنی
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
چه طوری باید از این کلاس استفاده کرد ؟
من این کلاس رو توی app_code قرار دادم
ولی نمیتونم ازش توی فرم های دیگه استفاده کنم
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
نقل قول:
نوشته شده توسط
raziee
ممنون. خیلی خوبه.
فقط اگه ممکنه منبع رو هم ذکر کنید.
http://weblogs.asp.net/infinitiesloop/..methods.aspx
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
نقل قول:
نوشته شده توسط
yakooza2009
چه طوری باید از این کلاس استفاده کرد ؟
من این کلاس رو توی app_code قرار دادم
ولی نمیتونم ازش توی فرم های دیگه استفاده کنم
دوست عزیز یکی کلاس ایجاد کن و کد مذکور را در آن قرار بده.
سپس در هر جای پروژه که نیاز بود از دستور responsehelper.redirect استفاده کن !
ممکن است درصورت عدم یکسان بودن "فضا نام" به ذکر namespace نیز باشد !
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
اگه میشه این کلاس رو با وی بی پیادش کنید
ممنون میشم
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
نقل قول:
نوشته شده توسط
yakooza2009
اگه میشه این کلاس رو با وی بی پیادش کنید
ممنون میشم
Public Module ResponseHelper
Private Sub New()
End Sub
Public Sub Redirect(ByVal url As String, ByVal target As String, ByVal windowFeatures As String)
Dim context As HttpContext = HttpContext.Current
If ([String].IsNullOrEmpty(target) OrElse target.Equals("_self", StringComparison.OrdinalIgnoreCase)) AndAlso [String].IsNullOrEmpty(windowFeatures) Then
context.Response.Redirect(url)
Else
Dim page As Page = DirectCast(context.Handler, Page)
If page Is Nothing Then
Throw New InvalidOperationException("Cannot redirect to new window outside Page context.")
End If
url = page.ResolveClientUrl(url)
Dim script As String
If Not [String].IsNullOrEmpty(windowFeatures) Then
script = "window.open(""{0}"", ""{1}"", ""{2}"");"
Else
script = "window.open(""{0}"", ""{1}"");"
End If
script = [String].Format(script, url, target, windowFeatures)
ScriptManager.RegisterStartupScript(page, GetType(Page), "Redirect", script, True)
End If
End Sub
End Module
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
من می خام فرمی که باز میشه همه اجزای صفحه رو حذف کنه منظورم toolbar وغیره است ، جوری که شبیه به یک پنل بشه . کد زیر رو هم استفاده کردم ولی هیچ تغییری حاصل نشد ؟؟
نقل قول:
نوشته شده توسط
Beyondsoft
دوستان توجه داشته باشند که از تمام option های زیر می توان استفاده کرد:
'height=300,width=300,top=200,left=250,status=no,t oolbar=no,menubar=no,location=no,titlebar=no'
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
نقل قول:
نوشته شده توسط
shocraneh
من می خام فرمی که باز میشه همه اجزای صفحه رو حذف کنه منظورم toolbar وغیره است ، جوری که شبیه به یک پنل بشه . کد زیر رو هم استفاده کردم ولی هیچ تغییری حاصل نشد ؟؟
می تونی از telerik windows استفاده کنی !
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
نقل قول:
نوشته شده توسط
shocraneh
من می خام فرمی که باز میشه همه اجزای صفحه رو حذف کنه منظورم toolbar وغیره است ، جوری که شبیه به یک پنل بشه . کد زیر رو هم استفاده کردم ولی هیچ تغییری حاصل نشد ؟؟
سلام دوسته من
من که اینطوری استفاده میکنم و جواب هم میده
StringBuilder sb = new StringBuilder();
if (!ClientScript.IsClientScriptBlockRegistered("exam pleScript"))
{
sb.Append("<script language='javascript' type='text/javascript'>");
sb.Append("window.open('PrintAccount.aspx','','scr ollbars=yes,toolbar=no,status=yes,location=no,dir ectories=no,width=710,height=600,top=50,left=150') ;");
sb.Append("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "exampleScript", sb.ToString());
}
البته قبلش از System.Text استفاده کرده باشید!البته گاهی اوقات با popup blocker به مشکل بر میخوره نمیدونم واسه چی؟
نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...
نقل قول:
نوشته شده توسط
Beyondsoft
سلام دوستان !
حتماً شما هم بسیاری از مواقع نیازمند شده اید که صفحه ای را به صورت مستقل و یا به صورت popup و یا با اندازه مشخص و ... باز کنید و با این مشکل موجه بوده اید و مجبر به استفاده از کد های جاوااسکریپت چون windows.open شده اید!
[/]
سلام دوسته من این کد که بازم از Window.open استفاده میکنه
در ضمن یه مشکل اگه popup blocker فعال باشه چی؟ کاربر نمیتونه یه پنجره رو به صورت popup باز کنه کسی واسه این راه حلی داره؟
من با کد به مشکل برخوردم
StringBuilder sb = new StringBuilder();
if (!ClientScript.IsClientScriptBlockRegistered("exam pleScript"))
{
sb.Append("<script language='javascript' type='text/javascript'>");
sb.Append("window.open('PrintAccount.aspx','','scr ollbars=yes,toolbar=no,status=yes,location=no,dir ectories=no,width=710,height=600,top=50,left=150') ;");
sb.Append("</script>");
ClientScript.RegisterStartupScript(this.GetType(), "exampleScript", sb.ToString());
}
پنجره باز نمیشه به علت اینکه popup blocker فعاله راهه حل چیست؟