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

نام تاپیک: کار نکردن Custom Control انتخابگر تاریخ شمسی در حالت Master Page

  1. #1

    کار نکردن Custom Control انتخابگر تاریخ شمسی در حالت Master Page

    سلام
    من برای استفاده از یک تقویم فارسی از این کامپوننت استفاده کردم، مشکل وقتی پیش میاد که از Master Page استفاده میکنم. وقتی که از یک صفحه معمولی استفاده میشه، هیچ مشکلی نداره.
    این کامپوننت با JavaScript نوشته شده.
    دوستان اگه راه حلی به ذهن شون میرسه دریغ نکنن.

  2. #2
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: کار نکردن یک Custom Control در حالت Master Page

    وقتی یک کنترل در Master Page قرار میگیره ID اش عوض میشه. برای اینکه اسکریپت فوق و دیگر اسکریپت های نیازمند به ID کنترل مقصد درست کار کنند میبایست از مشخصه ClientID به جای ID استفاده کنید.

    من به پروژه مثال خودش یک Master Page اضافه کردم و کنترل فوق را در Master Page قرار دادم. در DefaultContentPage.aspx به خوبی و بدون مشکل کار میکنه (ضمیمه را ببینید).
    فایل های ضمیمه فایل های ضمیمه

  3. #3

    نقل قول: کار نکردن یک Custom Control در حالت Master Page

    خدا شدیدا هر چی میخاید بهتون بده چون من دقیقا همین مشکلو داشتم و خیلی هم دنبال راه حلش گشتم اما ...

  4. #4

    نقل قول: کار نکردن یک Custom Control در حالت Master Page

    نقل قول نوشته شده توسط DelphiAssistant مشاهده تاپیک
    وقتی یک کنترل در Master Page قرار میگیره ID اش عوض میشه. برای اینکه اسکریپت فوق و دیگر اسکریپت های نیازمند به ID کنترل مقصد درست کار کنند میبایست از مشخصه ClientID به جای ID استفاده کنید.

    من به پروژه مثال خودش یک Master Page اضافه کردم و کنترل فوق را در Master Page قرار دادم. در DefaultContentPage.aspx به خوبی و بدون مشکل کار میکنه (ضمیمه را ببینید).
    برنامه نمونه شما رو تست کردم دیدم جواب نداد!! واسه همین رفتم تو IE تستش کردم و دیدم کار میکنه. البته در IE کد خودم هم کار کرد.

    شما از چی استفاده کردین؟ فایرفاکس؟
    روشی داره که این کد تو فایر فاکس کار کنه؟

    مرسی.

  5. #5
    بنیان گذار Barnamenevis آواتار مهدی کرامتی
    تاریخ عضویت
    اسفند 1381
    محل زندگی
    کرج، گلشهر
    سن
    46
    پست
    6,379

    نقل قول: کار نکردن یک Custom Control در حالت Master Page

    اتفاق عجیبی که هنگام قرار دادن این کنترل در Master Page میافته اینه که مقدار مشخصه name با مقدار مشخصه id متفاوت است:
    <input id="ctl00_PersianDatePickup2" type="text" name="ctl00$PersianDatePickup2" value="[کلیک کنید]" onclick="displayDatePicker('ctl00_PersianDatePicku  p2');"/>

    این قضیه ظاهرا در IE مشکلی ایجاد نمی کنه، اما در فایرفاکس ایجاد مشکل میکنه.

    دلیل مشکل هم اینه که جستجو بر اساس نام کنترل انجام میشه و کنترلی با نام ctl00_PersianDatePickup2 در صفحه پیدا نمیشه، چون نام این کنترل بر اساس اتفاق فوق به ctl00$PersianDatePickup2 تبدیل شده است، بنابراین جستجو بی نتیجه می مونه.

    برای رفع مشکل در فایل JsFarsiCalendar.js خط شماره 26 که به این شکل است:
    var targetDateField = document.getElementsByName (dateFieldName).item(0);

    را به شکل زیر تغییر دهید:
    var targetDateField = document.getElementById (dateFieldName);

    بدین ترتیب از این ببعد جستجو بر اساس ID کنترل انجام میشه و در هر دو Browser درست کار خواهد کرد.

    فایل اصلاح شده را ضمیمه کردم. پروژه ضمیمه شده با Visual Studio 2008 ساخته شده و درست کار میکنه.

    ماه رمضان است، دعا برای قبولی طاعات و عبادات فراموش نشود.
    فایل های ضمیمه فایل های ضمیمه

برچسب های این تاپیک

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

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