PDA

View Full Version : کمک در مورد فراخوانی توابع جاوا اسکریپت در code behind



masoodkhoshgard
پنج شنبه 11 دی 1393, 21:46 عصر
سلام
دوستان آیا امکان فراخوانی یک تابع جاوا اسکریپت در Page_Load وجود داره؟ چجوری؟
در اصل میخوام بعد از چک کردن یه شرط یک تابع جاوا اسکریپت رو اجرا کنه

mox123
پنج شنبه 11 دی 1393, 22:08 عصر
با سلام
برای sync پست بک از clientscript مثلا
Page.ClientScript.RegisterStartupScript(this.GetTy pe(), "aaa", "func1();", true);
برای async پست بک از scriptmanager مثلا
ScriptManager.RegisterStartupScript(Page, this.GetType(), "aaa", "func2();", true);

بیتا حکمت
جمعه 12 دی 1393, 02:19 صبح
با سلام
برای sync پست بک از clientscript مثلا
Page.ClientScript.RegisterStartupScript(this.GetTy pe(), "aaa", "func1();", true);
برای async پست بک از scriptmanager مثلا
ScriptManager.RegisterStartupScript(Page, this.GetType(), "aaa", "func2();", true);

میشه یه خرده بیشتر توضیح بدین ؟

1- sync پست یا async پست یعنی چی ؟
2- تو پارامترهای ورودی تابع هم فقط اینو می دونم که "func1();" و فانکشن دوم اسم توابع جاوا هستند اما بقیه پارامترها چی ان مثلا" aaa چیه ؟ و ...

mox123
جمعه 12 دی 1393, 10:14 صبح
میشه یه خرده بیشتر توضیح بدین ؟

1- sync پست یا async پست یعنی چی ؟
2- تو پارامترهای ورودی تابع هم فقط اینو می دونم که "func1();" و فانکشن دوم اسم توابع جاوا هستند اما بقیه پارامترها چی ان مثلا" aaa چیه ؟ و ...


در مورد پست بک ها جستجو کنین. مثلا وقتی با آپدیت پنل سروکار دارین مثل یه گریدویو async پست بک بکار میاد. در مورد event کلیک روی button مثلا sync بکار میاد. func1 و func2 اسکریپت شماست.
aaa یه کلید برای رجیستر کردن اسکریپته که معمولا وقتی چندین مرتبه قصد رجیستر کردن اسکریپت داشته باشین میتونین با این کلید بینشون تمایز قائل بشین.

masoodkhoshgard
جمعه 12 دی 1393, 10:46 صبح
با سلام
برای sync پست بک از clientscript مثلا
Page.ClientScript.RegisterStartupScript(this.GetTy pe(), "aaa", "func1();", true);
برای async پست بک از scriptmanager مثلا
ScriptManager.RegisterStartupScript(Page, this.GetType(), "aaa", "func2();", true);



ممنون دوست گلم از همین کد استفاده کردم ولی متاسفانه اجرا نمیشه.


protected void Page_Load(object sender, EventArgs e) {
if (Session["UserName"] != null)
{
accessAllow.Visible = true;
accessDenied.Visible = false;
int Temp = Users.checkUserType(Convert.ToString(Session["UserName"]));
Page.ClientScript.RegisterStartupScript(this.GetTy pe(), "aaa", string.Format("custumSideBar({0})",Temp), true);

}
}







<script>
function custumSideBar(type) {
switch (type) {
case 0:
{
$('#Setting').attr("style", "visibility:hidden");
break;
}
case 1:
{
break;
}
case 2:
{
break;
}
case 3:
{
break;
}
case 4:
{
break;
}
}


}
</script>

ahmad156
جمعه 12 دی 1393, 17:53 عصر
اگر از UpdatePanel استفاده نمیکنین میتونین از دو مورد زیر استفاده کنین:
1-ClientScriptManager.RegisterClientScriptBlock (http://msdn.microsoft.com/en-us/library/btf44dc9%28v=vs.110%29.aspx) :اسکریپت شما در انتهای صفحه قبل از <form/> قرار میده

2-ClientScriptManager.RegisterStartupScript (http://msdn.microsoft.com/en-us/library/z9h4dk8y%28v=vs.110%29.aspx) :اسکریپت شما رو در ابتدای صفحه بعد از <form> قرار میده

یا اگر از UpdatePanel استفاده میکنین از دو مورد زیر استفاده کنین:
1-ScriptManager.RegisterClientScriptBlock (http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerclientscriptbl ock%28v=vs.110%29.aspx)
2-ScriptManager.RegisterStartupScript (http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerstartupscript% 28v=vs.110%29.aspx)
که محل قرار گرفتن کدها مثل موارد بالا هست

مثال:

if (!Page.ClientScript.IsClientScriptBlockRegistered("ScriptUniqueName"))
{
string yourScript = "alert('Fired');";
Page.ClientScript.RegisterStartupScript(Page.GetTy pe(), "ScriptUniqueName", yourScript, true);
}