0

我有 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

4 回答 4

2

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

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

于 2013-02-07T10:23:46.393 回答
1

试试这个

Page.ClientScript.RegisterStartupScript(this.GetType(), "openTicketsScript", "<script type=\'type/javascript\'>$(document).ready(function(){openticketPageLoad(" + Request.QueryString["ID"].ToString() + ");});</script>".ToString(), true);
于 2013-02-07T10:24:14.460 回答
1

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

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

并在母版页中将 runat="server" 添加到正文元素:

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

我希望这有帮助。

于 2013-02-07T17:04:50.837 回答
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);
    }
}
于 2013-02-07T17:13:34.250 回答