نمایش نتایج 1 تا 13 از 13

نام تاپیک: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...

  1. #1
    کاربر دائمی آواتار Beyondsoft
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران
    پست
    336

    کلاسی به جای 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'

  2. #2
    کاربر دائمی آواتار imanasp
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    قطعه ای از بهشت
    پست
    364

    نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...

    ممنون من این مشکلو داشتم تستش کردم جواب داد
    فقط یه سوال چطور میشه پنجره کوچیکی روی پنجره اصلی باز کرد که مانع دید کنترل های صفحه اصلی نشه (بدون Ajax)

  3. #3
    VIP آواتار raziee
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    تهران
    سن
    35
    پست
    2,208

    نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...

    ممنون. خیلی خوبه.
    فقط اگه ممکنه منبع رو هم ذکر کنید.
    نگو به سرنوشت میبازی - تو بخوای فردا رو میسازی

  4. #4
    کاربر دائمی آواتار Beyondsoft
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران
    پست
    336

    نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...

    نقل قول نوشته شده توسط imanasp مشاهده تاپیک
    فقط یه سوال چطور میشه پنجره کوچیکی روی پنجره اصلی باز کرد که مانع دید کنترل های صفحه اصلی نشه (بدون Ajax)
    می تونی از windows control های telerik استفاده کنی

  5. #5

    نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...

    چه طوری باید از این کلاس استفاده کرد ؟
    من این کلاس رو توی app_code قرار دادم
    ولی نمیتونم ازش توی فرم های دیگه استفاده کنم

  6. #6

    نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...

    نقل قول نوشته شده توسط raziee مشاهده تاپیک
    ممنون. خیلی خوبه.
    فقط اگه ممکنه منبع رو هم ذکر کنید.
    http://weblogs.asp.net/infinitiesloop/..methods.aspx

  7. #7
    کاربر دائمی آواتار Beyondsoft
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران
    پست
    336

    نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...

    نقل قول نوشته شده توسط yakooza2009 مشاهده تاپیک
    چه طوری باید از این کلاس استفاده کرد ؟
    من این کلاس رو توی app_code قرار دادم
    ولی نمیتونم ازش توی فرم های دیگه استفاده کنم
    دوست عزیز یکی کلاس ایجاد کن و کد مذکور را در آن قرار بده.
    سپس در هر جای پروژه که نیاز بود از دستور responsehelper.redirect استفاده کن !

    ممکن است درصورت عدم یکسان بودن "فضا نام" به ذکر namespace نیز باشد !

  8. #8

    نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...

    اگه میشه این کلاس رو با وی بی پیادش کنید
    ممنون میشم

  9. #9
    کاربر دائمی آواتار Beyondsoft
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران
    پست
    336

    نقل قول: کلاسی به جای 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

  10. #10
    کاربر دائمی
    تاریخ عضویت
    آبان 1387
    محل زندگی
    خراسان رضوی
    پست
    677

    نقل قول: کلاسی به جای 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'

  11. #11
    کاربر دائمی آواتار Beyondsoft
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران
    پست
    336

    نقل قول: کلاسی به جای response.redirect با توانایی انتقال به صورت popup و ...

    نقل قول نوشته شده توسط shocraneh مشاهده تاپیک
    من می خام فرمی که باز میشه همه اجزای صفحه رو حذف کنه منظورم toolbar وغیره است ، جوری که شبیه به یک پنل بشه . کد زیر رو هم استفاده کردم ولی هیچ تغییری حاصل نشد ؟؟
    می تونی از telerik windows استفاده کنی !

  12. #12
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    مشهد
    پست
    232

    نقل قول: کلاسی به جای 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 به مشکل بر میخوره نمیدونم واسه چی؟
    آخرین ویرایش به وسیله naser2009 : دوشنبه 09 فروردین 1389 در 21:51 عصر

  13. #13
    کاربر دائمی
    تاریخ عضویت
    آبان 1386
    محل زندگی
    مشهد
    پست
    232

    نقل قول: کلاسی به جای 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 فعاله راهه حل چیست؟

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •