我有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.
}
答案 0 :(得分:2)
最后一个参数是一个布尔值,指定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);
}
}