ASP.NET AJAX常见问题整理


======================================================
注:本文源代码点此下载
======================================================

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^)/
阅读更多
个人分类: javaee
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭