نکاتی در مورد استفاده از کدهای JavaScript در صفحات شرپوینتی

سلام به دوستان عزیزم، در این پست تصمیم دارم تا نکاتی رو در مورد نوشتن کدهای جاوا اسکریپت در صفحات شرپوینت برای شما بنویسم. پس با من همراه باشید.

نکته ۱ :

برای نوشتن کدهای جاوا اسکریپت در صفحات شرپوینت باید ابتدا تگ زیر رو درصفحه پیدا کنید :

<asp:ContentPlaceHolder id="PlaceHolderMain" runat="server" />

حال دقیقاً در زیر این تگ تگ اسکریپتتون رو باز و کدتون رو داخل اون درج کنید ، به عنوان مثال :

<Script language="javascript" type="text/javascript>

var st = document.getElementById('TextBox1').value;

alert(st);

</script>

با اجرای دستور فوق که یک مثال ساده بود، محتوای جعبه متنی یا TextBox1 به شما به صورت پنجره هشداری نمایش داده میشه!

نکته ۲ :

در شرپوینت مانند سایر صفحات ASPX در .NET ، برای کنترلهای موجود در صفحات یک ID تعریف می شود ، اما ممکن است شما کنترلی را در صفحه اضافه کرده باشید و ID آنرا هم به صورت دستی وارد کرده باشید اما کد جاوا اسکریپت شما هنگام فراخوانی این کنترل به درستی عمل نکند! اگر به سورس صفحه بعد از لود شدن نگاه کنید مشاهده می کنید که ID شما برای کنترل مورد نظر به همرا یکسری کاراکتر دیگری در تگ مربوط به کنترلتون نمایش داده میشه!! و این ID با ID ای که توسط دستور getElementByID() فراخوانی کرده بودید متفاوت می باشد! برای برطرف کردن همچین مشکلاتی که دلیل آن قرار گیری کنترلها در بدنه ContentPlaceHolder ها می باشد که ID کنترلهای .NET ای رو با کاراکترهای دیگری ترکیب می نماید، استفاده از روش زیر در کدهای جاوا اسکریپت می باشد:

برای اینکار شما به جای وارد کردن مستقیم ID کنترل در فراخوانی ها توسط دستور getElementByID() از <%=ControlName.ClientID%> استفاده کنید ،

به عنوان مثال: به جای این دستور:

document.getElementById('TextBox1').value

از این دستور استفاده کنید :

document.getElementById('<%=TextBox1.ClientID%').value

نکته ۳ :

ممکن است که نیاز داشته باشید تا دستورات یک تابع یا Function جاوا اسکریپتی رو در زمان لود شدن صفحه شرپوینتی فراخوانی و اجرا کنید ! برای این کار از دستور زیر در داخل تگ <Script> و مانند  نکته ۱ در زیر تگ PlaceHolderMain استفاده کنید :

_spBodyOnLoadFunctionNames.push("FunctionName");

به جای FunctionName نام تابع جاوا اسکریپت که تصمیم دارید تا هنگام لود شدن صفحه اجرا شود را وارد نمایید.

نکته ۴ : 

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

ابتدا تابع زیر رو در زیر تگ <asp:ContentPlaceHolder id="PlaceHolderAdditionalPageHead" runat="server" /> قرار بدید:

<script language="javascript" type="text/javascript">

function Test() {

location.href="http://myserver/sites/sample.aspx";

}

</script>

به جای آدرس داخل "" آدرس صفحه مورد نظر که قرار هست کاربر رو به اون منتقل کنید، بنویسید.

اکنون باید نام این تابع رو در داخل _spBodyOnLoadFunctionNames.push(""); قرار بدید (نکته ۳) تا موقع لود شدن صفحه فراخوانی شود. مانند زیر :

_spBodyOnLoadFunctionNames.push("Test");

 

منتظر نظرات شما عزیزان هستم.

شاد باشید…

پاسخ دهید