js全局变量的问题

H678999 2010-07-13 03:27:13
页中有个<asp:GridView>的控件,因多处JS function要引用,想把它声明成全局变量,死活不能,但同样的页中的有id的div控件则可声明为全局,常量也能全局.难道html控件才能? asp控件不能?
...全文
494 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
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';

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧