======================================================
注:本文源代码点此下载
======================================================
1.asp.net ajax-enabled页面引用脚本出现的问题
1 head runat="server">
2title>untitled page/title>
3script type="text/javascript" src="js/gridviewjs.js"/>
4link type="text/css" rel="stylesheet" href="css/gridviewcss.css" />
5 /head>
我原来的js代码是这样的,结果导致画面上有scriptmanager的时候一直发生this.form为null的错误。
原因是类似下面的脚本采用了封闭式的标签声明,而
script type="text/javascript" src="scripts/somefile.js"/>
而将标签声明为开放式的形式才有助于ajax库判断引用javascript的结尾。
script type="text/javascript" src="scripts/somefile.js">script>
2.asp.net ajax中的控件id问题
因为使用ajax容器控件会导致scriptmanager直接在你所使用的空间前面添加前缀而改变,如原来控件为extendgridview1,
而在tab容器中,则变为tbcmain_tbporgnz_extendgridview1。而这个id使用的场景仅限于非.net页面事件相关的普通
javascript函数,如document.getelementid方法中你可以使用这个id在客户端找到该控件。
但在服务器端进行findcontrol或者在客户端使用__dopostback函数的时候一定要使用把"_"转换成"$"后的控件id,即:
tbcmain_tbporgnz_extendgridview1 -> tbcmain$tbporgnz$extendgridview1
在服务器端我们可以使用string.replace函数直接进行转换。在javascript中比较汗颜的是string.replace函数一次只转换一个,
所以我写了一个javascript函数来进行客户端的转换。
1 function getajaxid(id)
2 {
3while(id.indexof('_')>-1)
4{
5id=id.replace('_','$');
6}
7return id;
8 }
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/