我想将数据传递到ID传递数据给JavaScript在页面加载
<script language="javascript" src="/foo.aspx?id=1"></script>
我有一个aspx页面的代码。
在代码执行之前,数据应该在加载时传递。
我该怎么做?
我想将数据传递到ID传递数据给JavaScript在页面加载
<script language="javascript" src="/foo.aspx?id=1"></script>
我有一个aspx页面的代码。
在代码执行之前,数据应该在加载时传递。
我该怎么做?
我已经变得越来越更不愿意在.aspx文件中放入<%%,这主要是因为你可能陷入可怕的结,试图逃避各种引用。
这里做的另一种方式:
<asp:Literal id="myscript" runat="server"/>
然后在服务器端,当你处理Page_Load()
:
int theID = 42;
myscript.Text = string.Format("<script type=\"text/javascript\" " +
" src=\"/foo.aspx?id={0})\"></script>", theID);
编辑:改写在C#:)
我喜欢这个.... – DarthVader 2010-04-29 01:53:50
这是一个很好的解决方法,我用它来控制数据绑定,其中链接的点击功能依赖于它的id。处理注入整个JavaScript的更好的方法是用'Page.ClientScript.RegisterClientScriptBlock'完成http://msdn.microsoft.com/en-us/library/system.web.ui.page.registerclientscriptblock.aspx但是,如果你需要在将来对JavaScript进行代码更改时,必须重新编译整个代码库,而不是在Web表单中进行更改并移动'<%= %>'标签。 – 2010-04-30 12:36:46
@Jim Schubert:我同意,当然,尽管我认为你的意思是http://msdn.microsoft.com/en-us/library/btf44dc9.aspx。另一方面,有时您需要控制脚本的放置位置。 – egrunin 2010-04-30 16:48:09
只是在你的代码隐藏文件属性,如
protected string FooId
{
get { return ... }
}
然后在ASPX文件,像这样引用它:
<script language="javascript" src="/foo.aspx?id=<%= FooId %>"></script>
ASP.NET有语法<%= %>
这是相当于Response.Write。
然后,您可以存储您的ID中的属性,如: protected int Id {get;set;}
,并将其设置在Page_Load中
那么,你会做这样的:
<script language="javascript" src="/foo.aspx?id=<%= Id %>"></script>
你到底在做什么,通过使src属性变为动态? – azamsharp 2010-04-29 01:11:31
我认为有一个服务器根据URL参数发出不同的javascript,并且直到运行时才知道它们应该是什么。 – egrunin 2010-04-29 12:12:49