ASP.NET - 连接 html、javascript 和 CSS 的问题
ASP.NET - issues with connecting html, javascript and CSS
我有这段代码,它只是显示一个弹出窗口,其中包含 2 个图像、一个背景和一个可点击的图像(按钮)。这个想法是,当用户点击按钮时,它会显示他们的用户 ID。该设置只是 javascript & HTML 在 ASPX 文件中(这样它就可以实际读取用户的 ID 等)。当我在 .NET 部分执行 'response.write' 时,它会在屏幕上毫无问题地显示用户 ID。但是,我的问题是 javascript 看不到 'userid',所以当我在 javascript 中执行“alert(userid)”时,它实际上并没有显示 ID,它只是空白的。
这是我的代码:
<%@ Import Namespace="dbfunctions" %>
<%@ Import Namespace="generalfunctions" %>
<%@ Import Namespace="system.data" %>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, e As EventArgs)
Public userid As Integer
Dim rst As DataView
Dim connstr As String = getStrConn(HttpContext.Current)
userid = Session("u_id")
connstr = getStrConn(HttpContext.Current)
'response.write(userid)
End Sub
</script>
<script type='text/javascript'>
function loadPage(){
var userid=<%=userid%>;
alert(userid)
}
</script>
<html>
<head>
<title>Please update your details</title>
<link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
<input type="hidden" id="userid" value="@userid" />
<img id="img" src="corkboard.png" />
<a id="b1" href="#" onclick="loadPage()">
<img src="button.png" style="border-style: none" />
</a>
</body>
</html>
非常感谢任何帮助,因为我想我快到了,aspx 和 javascript 单独工作,只是将它们组合在一起的问题...
这样不行。原因:ASP在服务器端执行,Javascript在客户端执行。这意味着一旦执行 Javascrpt,您的 "userid" 变量将不再存在。您可以 "store" 它可以在 HTML 渲染后继续存在的某个地方,例如作为隐藏输入元素中的值:
<input type="hidden" id="userid" value="@userid" />
然后在您的 Javascript 代码中读取该元素的值:
function loadPage(){
var userid=document.getElementById("userid");
alert(userid);
}
您可以告诉您的预处理器在呈现页面时将代码中的变量粘贴到 aspx 页面中。变量必须是 public,并放置在您的页面部分 class:
<script language="VB" runat="server">
Public userid As Integer
Sub Page_Load(Sender As Object, e As EventArgs)
userid = 32
End Sub
</script>
然后使用预处理器指令将其粘贴到 aspx 页面中:
var userid=<%=userid%>; //this line will be rendered as "var userid=32"
function loadPage(){
alert(userid)
}
我有这段代码,它只是显示一个弹出窗口,其中包含 2 个图像、一个背景和一个可点击的图像(按钮)。这个想法是,当用户点击按钮时,它会显示他们的用户 ID。该设置只是 javascript & HTML 在 ASPX 文件中(这样它就可以实际读取用户的 ID 等)。当我在 .NET 部分执行 'response.write' 时,它会在屏幕上毫无问题地显示用户 ID。但是,我的问题是 javascript 看不到 'userid',所以当我在 javascript 中执行“alert(userid)”时,它实际上并没有显示 ID,它只是空白的。
这是我的代码:
<%@ Import Namespace="dbfunctions" %>
<%@ Import Namespace="generalfunctions" %>
<%@ Import Namespace="system.data" %>
<script language="VB" runat="server">
Sub Page_Load(Sender As Object, e As EventArgs)
Public userid As Integer
Dim rst As DataView
Dim connstr As String = getStrConn(HttpContext.Current)
userid = Session("u_id")
connstr = getStrConn(HttpContext.Current)
'response.write(userid)
End Sub
</script>
<script type='text/javascript'>
function loadPage(){
var userid=<%=userid%>;
alert(userid)
}
</script>
<html>
<head>
<title>Please update your details</title>
<link rel="stylesheet" type="text/css" href="main.css">
</head>
<body>
<input type="hidden" id="userid" value="@userid" />
<img id="img" src="corkboard.png" />
<a id="b1" href="#" onclick="loadPage()">
<img src="button.png" style="border-style: none" />
</a>
</body>
</html>
非常感谢任何帮助,因为我想我快到了,aspx 和 javascript 单独工作,只是将它们组合在一起的问题...
这样不行。原因:ASP在服务器端执行,Javascript在客户端执行。这意味着一旦执行 Javascrpt,您的 "userid" 变量将不再存在。您可以 "store" 它可以在 HTML 渲染后继续存在的某个地方,例如作为隐藏输入元素中的值:
<input type="hidden" id="userid" value="@userid" />
然后在您的 Javascript 代码中读取该元素的值:
function loadPage(){
var userid=document.getElementById("userid");
alert(userid);
}
您可以告诉您的预处理器在呈现页面时将代码中的变量粘贴到 aspx 页面中。变量必须是 public,并放置在您的页面部分 class:
<script language="VB" runat="server">
Public userid As Integer
Sub Page_Load(Sender As Object, e As EventArgs)
userid = 32
End Sub
</script>
然后使用预处理器指令将其粘贴到 aspx 页面中:
var userid=<%=userid%>; //this line will be rendered as "var userid=32"
function loadPage(){
alert(userid)
}