js全局变量的问题

H678999 2010-07-13 03:27:13
页中有个<asp:GridView>的控件,因多处JS function要引用,想把它声明成全局变量,死活不能,但同样的页中的有id的div控件则可声明为全局,常量也能全局.难道html控件才能? asp控件不能?
...全文
428 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
H678999 2010-07-14
其实在function里面用无var开头可以声明成全局,只不过要在里才能声明,就不必要全局了,因可把它当参数传给其他function.况且,一个function里的全局变量要先在其他function里先声明,那叫什么全局嘛.加上我的代码之间的嵌套引用可能会引起声明的重复或冲突,算了,看来想优化一代码都不可能,只得看着满街都是都相同的声明了.
谢谢!帮顶都有分.结了
回复
H678999 2010-07-14
在浏览页看了一下源文件,发现根本不存在GridView1,给它绑定了数据源就可以声明全局了.不过,那样表格就是死表格了,一般表格都是从后台动态绑定的.而后来才绑定,在声明变量时表格却还是null.
回复
咖啡2003 2010-07-14
服务器控件生成顺序问题,无解。ajax吧
回复
H678999 2010-07-14
举一最简单的例,页中DIV内有一GridView:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>

</head>
<body>
<form id="form1" runat="server">
<div id="divMain">
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
</form>
</body>
</html>
<script >
var grv = document.getElementById("GridView1");
var div = document.getElementById("divMain");
</script>

声明全局的grv,返回是null; 而div则能返回ojbect,
请教为何有这差别?GridView1如何才能声明成全局?
回复
H678999 2010-07-13
本想优化一下原来的老JS代码,因GridView1在多个function都要引用到,想把它声明成全局的,却未能如愿,看着到处都是var grv=document.getElementById("GridView1");的声明,真太无奈.
回复
kuang17 2010-07-13
我不这道····
回复
H678999 2010-07-13
在同一个地方,任何function的外面
声明:
var grv=document.getElementById("GridView1"); //不行,GridView1是asp控件的ID
var con=divMain; //可以,这个divMain是某html控件div的id
var row=<%= rowCount %> //可以,取后台变更
为什么第1个不行,后2个都行?请指教
回复
咖啡2003 2010-07-13
window['xx']='abc';
回复
发动态
发帖子
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
社区公告
暂无公告