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

نام تاپیک: عدم اجرای document.ready در ویو لود شده در jQuery dialog

  1. #1

    عدم اجرای document.ready در ویو لود شده در jQuery dialog

    با سلام خدمت دوستان، من میخوام صفحات ایجاد رکورد جدید و ویرایش رکورد رو که قبلا توی page جدا به کاربر نمایش میدادم الان میخوام توی jquery dialog توی صفحه مثلا لیست رکوردها نمایش بدم که فک کنم کاربر پسند تر باشه.
    من توی صفحه ایجاد و ویرایش رکورد یه اسکریپت توی document.ready نوشتم که در حالت عادی که صفحه جدا باز بشه کار میکنه و اجرا میشه اما وقتی بخوام این صفحه رو توی page لیست رکوردها داخل jquery dialog باز کنم، تابع document.ready مربوط به صفحه ایجاد رکورد، اجرا نمیشه که خب طبیعی هم هست، چون صفحه لیست رکوردها قبلا لود شده

    حالا میخوام راهنمایی کنین که برای حل این مشکل چیکار کنم؟ مثلا مقداردهی های اولیه ای که توی تابع ready قرار دادم چجوری و کجا باید انجام بدم؟

    اینم یه عکس از دیالوگ:
    fdgfh.png

    اینم سکریپتی که توی صفحه ایجاد رزرو نوشتم و اجرا نمیشه:
    $(document).ready(function () {
    var d = new Date();
    d.setDate(d.getDate() - 0);
    var startDay = parseInt(d.getTime());
    d.setDate(d.getDate() + 24);
    var endDay = parseInt(d.getTime());

    $("#ReservedForDate").persianDatepicker({
    initialValueType: 'persian',
    format: 'YYYY/MM/DD',
    autoClose: true,
    minDate: startDay,
    maxDate: endDay,
    onSelect: function () { $("#ReservedForDate").change(); }
    });

    $("#ReservedForDate").change(function () {
    OnChangeDateField();
    })

    OnChangeDateField();
    ToggleTransactionNumField();
    });


  2. #2

    نقل قول: عدم اجرای document.ready در ویو لود شده در jQuery dialog

    اول باید مطمئن بشید که کدهای جاوا اسکریپت شما در انتهای صفحه لود میشه. باید در Layout یک Section تعریف کنید و کدهای جاوا اسکریپت هر صفحه رو درون اون Section قرار بدید.
    کدهای یک صفحه در ASP درون صفحه ی Layout قرار میگیره و بعد به کاربر ارسال میشه. اگر Section نداشته باشید کد جاوا اسکریپت شما ممکنه قبل از لود صفحه و فایل jQuery لود بشه که حتما خطا میده و درست کار نمیکنه.

    برای طراحی این نوع صفحات بهتره از یک فریم ورک مخصوص این کار استفاده کنید. مثلا Vue.js برای اینکار بسیار مناسبه.

  3. #3

    نقل قول: عدم اجرای document.ready در ویو لود شده در jQuery dialog

    section مربوط به سکریپت ها اخر layout قرار داره و داخل صفحه ایجاد رزرو هم اخر صفحه، section رو باز کردم و فایل های سکریپتم داخلش هست، این از layout:

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/unobtrusive")
    @Scripts.Render("~/bundles/bootstrap")
    <script src="~/Scripts/jquery-ui-1.12.1.min.js"></script>
    @Scripts.Render("~/bundles/klorofil")
    @RenderSection("scripts", required: false)

    اینم انتهای فایل View ایجاد رزرو:
    @section Scripts{
    @Scripts.Render("~/bundles/jqueryval")
    <script src="~/Scripts/Admin.js"></script>

    <script src="~/Content/pwt.datepicker-master/assets/persian-date.min.js"></script>
    <script src="~/Content/pwt.datepicker-master/dist/js/persian-datepicker.min.js"></script>
    }


    این نکته رو هم بگم که بقیه سکریپت های موجود توی فایل admin.js (همین فایلی که سکریپت هام رو توش نوشتم توی صفحه ایجاد رزرو) کار میکنن فقط بخش document.ready کار نمیکنه
    آخرین ویرایش به وسیله mr.sirwan : سه شنبه 12 تیر 1397 در 15:16 عصر

  4. #4

    نقل قول: عدم اجرای document.ready در ویو لود شده در jQuery dialog

    بهترین کار اینه که اسکریپت رو دیباگ کنید. با F12 در کروم میتونید خط به خط مسیر اجرای اسکریپت رو دنبال کنید.

    درون اسکریپت یک Log یا Alert قرار بدید ببینید اجرا میشه یا نه

  5. #5

    نقل قول: عدم اجرای document.ready در ویو لود شده در jQuery dialog

    ببینید شاید من منظور و قصدم رو کامل نرسوندم، من وقتی بخوام این ویوی ایجاد رزرو رو بصورت جداگانه یعنی داخل یه صفحه دیگه بصورت مجزا باز کنم همه چی اوکیه مشکلی در اجرای سکریپت ها وجود نداره، ولی وقتی میخوام همون صفحه یا ویو رو بیارم توی jquery dialog نمایش بدم فقط سکریپت مربوط به document.ready صفحه ایجاد رزرو کار نمیکنه بقیه سکریپت ها کامل کار میکنن.

    به نظرم دلیلیش هم اینه که من که دارم ویوی ایجاد رزرو رو از توی ویوی لیست رزروها داخل دیالوگ باز میکنم، خب قبلا document.ready اجرا شده چون ویوی لیست رزرو ها قبلا لود شده

    سکریپت رو دیباگ کردم، وقتی دیالوگ رو باز میکنم بخش document.ready مربوط به ویوی ایجاد رزرو اجرا نمیشه

  6. #6

    نقل قول: عدم اجرای document.ready در ویو لود شده در jQuery dialog

    یه نکته ای هم که الان متوجه ش شدم اینه که وقتی برای ویوی ایجاد رزرو بالای ویو پراپرتی layout مشخص میکنم و از طریق صفحه لیست رزروها دیالوگ رو باز میکنم، سکریپت document.ready کار میکنه ولی وقتی پراپرتی layout رو برابر با null قرار میدم (که باید برابر null باشه تا چیز اضافه ای به ویو اضافه نشه) و دیالوگ رو باز میکنم document.ready ویوی ایجاد رزرو از کار میوفته

    دلیلش چیه؟

  7. #7

    نقل قول: عدم اجرای document.ready در ویو لود شده در jQuery dialog

    مشکل حل شد، به خاطر این که layout رو برابر نال قرار میدادم، دیگه این ویو یک صفحه html محسوب نمیشد و استایل ها و سکریپتها براش کار نمیکردن (بعضی وقتا علت ها انقد سادن که اصلا فکرمون سمتشون نمیره)، برای حل مشکلش اومدم یه layout خالی ایجاد کردم که با layout اصلیم تداخلی ایجاد نکنه و توی اون layout براش section های script و style رو تعریف کردم و توی ویو داخل این سکشن ها فایل های مورد نیاز رو اضافه کردم

    تشکر از همراهیتون

تاپیک های مشابه

  1. سوال: عدم اجرای دستورات من در حلقه for
    نوشته شده توسط fidelio در بخش C#‎‎
    پاسخ: 4
    آخرین پست: پنج شنبه 18 شهریور 1389, 16:59 عصر
  2. عدم اجراي Event ها در اكسس 2007
    نوشته شده توسط negar56 در بخش Access
    پاسخ: 13
    آخرین پست: دوشنبه 18 مرداد 1389, 20:22 عصر
  3. سوال: عدم اجرای Stored Procedure در برنامه
    نوشته شده توسط man_iran در بخش C#‎‎
    پاسخ: 2
    آخرین پست: پنج شنبه 27 اسفند 1388, 13:12 عصر
  4. عدم اجرای فایل اجرایی در سایر کامپیوتر ها
    نوشته شده توسط emilvr در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 13
    آخرین پست: پنج شنبه 29 بهمن 1388, 13:58 عصر
  5. سوال: عدم اجرای دستور SQL در Filter مربوط به ADO
    نوشته شده توسط SYNDROME در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 11
    آخرین پست: چهارشنبه 09 مرداد 1387, 23:03 عصر

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

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