如何从ASP.Net中的用户控件调用客户端脚本?

问题描述:

我已阅读此问题的许多参考,但没有得到结果。所以,我想让我试着在这里解释我的科学家。如何从ASP.Net中的用户控件调用客户端脚本?

这是我的3脚本,它在view.ascx控制。我想在.cs文件功能和点击事件中调用它。

view.ascx

<script type="text/javascript"> 
function startLoading() { 
    alert("load start"); 
    var el = jQuery(".scp-entry-header"); 
    App.blockUI(el); 
} 


function stopLoading() { 
    alert("load end"); 
    var el = jQuery(".scp-entry-header"); 
    App.unblockUI(el); 
} 

function getCalendarData() { 
    alert("calendarcalled"); 
} 
</script> 

view.ascx.cs

//ViewData button click 
protected void btnGetData_Click(object sender, EventArgs e) 
{ 
    //How to call startLoading function here? 
    process from database; 
    //How to call stopLoading function here? 
} 

//simple function call 
protected void showCalendar() 
{ 
    //How to call getCalendarData function here? 
} 

我看了一下RegisterScript,但没有得到结果。我不明白RegisterScript的位置以及如何在函数中调用它。

任何人都可以请我详细的建议我如何在这里调用JavaScript函数?

+0

可能的复制(HTTP [我如何调用从asp.net按钮JavaScript的点击?]://计算器。 com/questions/15136034/how-do-i-call-javascript-from-asp-net-button-click) – rcdmk

+0

@rcdmk它不一样。我想从'.cs'文件中调用javascript函数(而不是仅在按钮上单击)。我也想在'.cs'文件的简单函数中调用javascript。我编辑了我的问题,以便更清楚地说明问题。请纠正我,以防止误解。 –

尝尝这

protected void btnGetData_Click(object sender, EventArgs e) 
 
{ 
 
     //How to call startLoading function here? 
 
     process from database; 
 
     //How to call stopLoading function here? 
 
     Page.ClientScript.RegisterStartupScript(this.GetType(), "script", "startLoading", true); 
 
}

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", "<script>alert('Hello.')</script>", false); 
+0

这对用户控制的情况会有帮助吗?我的问题是UserControl –

+0

您需要为用户控件的链接按钮添加委派或自定义事件,并使用可以调用此事件的自定义事件。 –

请记住,您不能在C#代码中调用JavaScript函数并继续执行服务器端代码。

对.cs文件的JavaScript函数的所有调用只是执行服务器端代码后执行的调度/标记。它们不是与服务器代码一起执行的。

换句话说,您将不得不通过​​和异步代码来实现此功能,或者更好的是,将其作为JavaScript中的异步调用来实现。

客户端的代码应该在客户端。尽量不要混合它们。

+0

谢谢。我已阅读一些参考(http://stackoverflow.com/questions/18036508/how-to-call-a-java-script-function-from-user-controls),但它没有用。你能指导我该如何处理上述情况? –