[英]Pass javascript code from asp.net
我試圖將一些我在服務器端使用String Builder構建的JavaScript代碼(后面是ASP.NET代碼)傳遞給html頁面上的JavaScript。 這就是我在做什么。
我確實使用母版頁和aspx頁,如下所示:
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript">
// Some initial JavaScript code
// followed by a Literal tag, to be replaced by
// JavaScript code block which comes from code behind
<asp:Literal runat="server" ID="SomeID"></asp:Literal>
// some more JavaScript.
</script>
</asp:Content>
然后在aspx.cs頁面后面的代碼中:
protected void Page_Load(object sender, EventArgs e)
{
Literal ID = (Literal)this.Page.FindControl("SomeID");
ID.Text = SomeStuff();
}
private string SomeStuff()
{
string javascript = "";
StringBuilder sb = new StringBuilder();
sb.Append("Some JavaScript Code");
sb.Append("dynamically buildup on server side");
}
但是問題是this.Page.FindContol(“ SomeID”)返回NULL。 似乎在腳本標簽內無法讀取文字ID。 我不能使用的div或span標簽文字周圍的控制,這是腳本標記內。 div / span將在JavaScript代碼中留下流浪標記。 任何幫助,將不勝感激。
謝謝!
首先,您是否使用母版頁? 如是? 其Master.FindControl()
。 除此之外,您是否有附加特定理由? 建議您使用RegisterStartupScriptBlock()
方法或RegisterClientScriptBlock()
方法
據我了解,您正在嘗試從后面的代碼中將一些腳本分配給文字控件。
據我所知,您的文字應該在.aspx頁面中。 准備后面代碼中的任何字符串生成器,並在字符串生成器准備就緒后,將代碼中的字符串生成器分配給文字。
this.SomeID.Text = SomeStuff();
您是否嘗試過以下方法:
protected void Page_Load(object sender, EventArgs e)
{
var literals = Page.Master.FindControl("SomeID").Controls.OfType<Literal>();
// Literal ID = (Literal)this.Page.FindControl("SomeID");
this.literals.Text = SomeStuff();
}
private string SomeStuff()
{
string javascript = "";
StringBuilder sb = new StringBuilder();
sb.Append("Some JavaScript Code");
sb.Append("dynamically buildup on server side");
return sb;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.