با سلام خدمت دوستان گرامی و عرض پوزش بابت تاخیر در ارسال ادامه این سری از مقالات ،
در قسمت قبلی یاد گرفتیم که چطور Date Picker پیشفرض شیرپوینت رو به شمسی تغییر بدیم اما مشکلی که داشتیم این بود که هنگام ذخیره کردن فرم پیغام خطایی دریافت میکردیم با این عنوان که شما میبایست تاریخی با فرمت میلادی وارد کنید.

اما در این قسمت از سری مقالات تقویم شمسی میخواهیم ببینم چطور میتونیم تاریخ هایی که به صورت شمسی انتخاب شده اند رو به میلادی تغییر دهیم .

اولین کاری که باید انجام بدیم اینه که بتونیم دکمه ذخیره رو در فرم پیدا کرده و اسکریپت مربوط به آن را تغییر دهیم که از طریق کد زیر میتوانید این کار را انجام دهید :


function findSaveButton()

{

var tags = document.getElementsByTagName('INPUT');

var SaveButton;

for (var i = 0; i < tags.length; i++)

{

if(tagsIdea.id.indexOf('diidIOSaveItem') != -1)

SaveButton=tagsIdea;

}

return SaveButton;

}




حالا می بایست قبل از اینکه فرم ارسال بشه به سرور تاریخ ها رو به میلادی تغییر دهیم :




function changeDatesBeforeSave()

{

changePersianDates();

sButton = findSaveButton();

if (!PreSaveItem()) {

return false;

}



WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(sButton.name, "", true, "", "", false, true));

}



function changePersianDates()

{



$(function() {

var tags = document.getElementsByTagName('IMG');

for (var i = 0; i < tags.length; i++)

{

var tempString = tagsIdea.id;

if (tempString.indexOf('DatePickerImage') != -1)

{

var dtcontrolId = tempString.replace('DatePickerImage','');

var DateValue = document.getElementById(dtcontrolId).value;

if(DateValue)

{

var splitter = DateValue.split('/');



Year = new Number(splitter[0]);

Month = new Number(splitter[1]);

Day = new Number(splitter[2]);

if(Year<1400)

{

var j = persian_to_jd(Year,Month,Day);

perscal = jd_to_gregorian(j);

pyear = perscal[0];

pmonth = perscal[1];

pday = perscal[2];

if(Number(pmonth) < 10)

pmonth = "0" + pmonth;



if(Number(pday) < 10)

{

pday = "0" + pday;

}



var miladiDate = pmonth + "/" + pday + "/" + pyear;

document.getElementById(dtcontrolId).value = miladiDate;

}



}

}

}

});



}






این تمام کاری هست که شما میبایست انجام دهید ، من آخرین ورژن از اسکریپت رو براتون آماده کردم که میتونید از اینجا دریافت کنید :

http://www.mediafire.com/download/r1...atePickerV2.js

و فقط کافیست کدهای درون این فایل رو همانند قسمت های قبلی در فایل masterpage وارد نمایید.

موفق و پیروز باشید

رامین احمدی