![](/img/trans.png)
[英]Call C# function from Javascript in aspx webform and then reload page
[英]Call Javascript function with parameters from C# Page .aspx
我有RegisterClientScriptBlock,它寫在protected void Page_Load(object sender, EventArgs e)
的.aspx文件的頁面加載內部protected void Page_Load(object sender, EventArgs e)
腳本實際上是從URL獲取ID,然后將其傳遞給javascript的openticketPageLoad()函數。
但是它沒有進入openticketPageLoad()函數。 但是.aspx頁面正在加載。
openTickets.aspx.cs
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ClientScript.RegisterClientScriptBlock(this.GetType(), "openTicketsScript", "<script type=\'type/javascript\'>$(document).ready(function(){openticketPageLoad(" + Request.QueryString["ID"].ToString() + ");});</script>".ToString(), true);
}
}
在我的JavaScript文件中
function openticketPageLoad(b)
{
alert(b); //No alert window coming.
}
請參閱此處的文檔: http : //msdn.microsoft.com/zh-cn/library/system.web.ui.clientscriptmanager.registerclientscriptblock.aspx
最后一個參數是一個布爾值,它指定ASP.net是否應生成腳本標記。 正如您已經指定的那樣,我希望您在查看源代碼時會生成嵌套腳本標簽。
嘗試這個
Page.ClientScript.RegisterStartupScript(this.GetType(), "openTicketsScript", "<script type=\'type/javascript\'>$(document).ready(function(){openticketPageLoad(" + Request.QueryString["ID"].ToString() + ");});</script>".ToString(), true);
也許您可以做的是直接在頁面正文的load事件中將調用分配給您的javascript函數。 要從內容頁面分配主體的加載功能,可以執行以下操作:
HtmlGenericControl body = this.Master.FindControl("body") as HtmlGenericControl;
body.Attributes.Add("onLoad", "openticketPageLoad(" + Request.QueryString["ID"].ToString() + ");");
並在母版頁中將runat =“ server”添加到body元素:
<body id="body" runat="server">
我希望這有幫助。
您可以嘗試以下代碼:
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
ClientScript.RegisterClientScriptBlock(this.GetType(),
"openTicketsScript", string.Format("openticketPageLoad({0});", Request.QueryString["ID"]), true);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.