[英]Accessing ascx.cs from ascx
我正在尝试从ascx文件的javascript访问ascx.cs文件中的列表.ascx.cs文件中的列表如下。
public List<String> samplelist
{
get { return samplelist; }
set { samplelist = value; }
}
在My ascx中,我想从Javascript访问相同的内容。
<script>
function calllist() {
// I want to access the list named "samplelist" here.
}
</script>
请帮助我如何访问javascript中的列表。
不可以,因为ascx控件不代表可以从客户端计算机访问的真实URL。 它们纯粹是服务器端的,旨在嵌入其他页面。
您可能想要做的就是拥有一个aspx页面,该页面提供与您的ascx文件中当前包含的html相同的代码段。 一个aspx页面不一定需要提供完整的html文档(等等),它只可以呈现您感兴趣的用户控件。
我假设您在这里使用ASP.NET Web表单。 您无法从javascript中访问C#代码中的变量/方法/属性等,因为它们永远不会被渲染。 您所有的c#代码实际上都编译在DLL文件中,并驻留在服务器中。
如果您需要将列表从服务器返回到前端浏览器(或javascript),则可以使用隐藏字段。 只需将变量设置为隐藏字段的值,然后从javascript中进行访问即可。
这是一个公共变量。 您可以像下面在JavaScript代码中那样访问它
<%= samplelist %>
如果您不需要对服务器端列表的写权限,则可以将其序列化为JSON并将其嵌入到JavaScript中,然后像JavaScript数组一样对其进行访问...
后面的代码:
using System.Web.Script.Serialization;
public List<String> samplelist
{
get { return samplelist; }
set { samplelist = value; }
}
public string sampleListJson()
{
var jsonSerializer = new JavaScriptSerializer();
return jsonSerializer.Serialize(samplelist);
}
JavaScript:
<script>
var samplelist = <%= sampleListJson() %>;
function calllist() {
alert(samplelist[0]);
}
</script>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.