簡體   English   中英

使用C#頁面.aspx中的參數調用Javascript函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM