使用C#Page .aspx中的参数调用Javascript函数

时间:2013-02-07 10:20:09

标签: c# javascript asp.net

我有RegisterClientScriptBlock,它写在.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.
}

4 个答案:

答案 0 :(得分:2)

请参阅此处的文档:http://msdn.microsoft.com/en-us/library/system.web.ui.clientscriptmanager.registerclientscriptblock.aspx

最后一个参数是一个布尔值,指定ASP.net是否应生成脚本标记。正如您已经指定它们一样,我希望您在查看源代码时生成嵌套脚本标记。

答案 1 :(得分:1)

试试这个

Page.ClientScript.RegisterStartupScript(this.GetType(), "openTicketsScript", "<script type=\'type/javascript\'>$(document).ready(function(){openticketPageLoad(" + Request.QueryString["ID"].ToString() + ");});</script>".ToString(), true);

答案 2 :(得分:1)

也许你可以做的是直接在页面正文的load事件中为你的javascript函数分配调用。要从内容页面分配正文的加载函数,可以执行以下操作:

HtmlGenericControl body = this.Master.FindControl("body") as HtmlGenericControl;
                body.Attributes.Add("onLoad", "openticketPageLoad(" + Request.QueryString["ID"].ToString() + ");");

在母版页中添加runat =&#34;服务器&#34;到身体元素:

<body id="body" runat="server">

我希望这会有所帮助。

答案 3 :(得分:1)

您可以尝试以下代码:

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);
    }
}