一个使用动态Javascript脚本绑定的注意事项

这个月新的项目上线了...本来想忙了两个多月终于可以好好的休息一下了....
但是由于脚本的问题来来回回的又搞了两个星期....
苦呀....
现在写出来发泄一下不满的心情...也希望大伙不要犯和我们相同的错误......
项目的前面几个页面要大量的动态生成数据使用了大量的动态生成脚本(每页大概有1300多行),项目上线后使用一段时间后出现了一些难以想象的脚本错误(原来手工测试时都是没问题的,而且写这此脚本的同事离职了), 查了N多久后终于发现是页面上动态绑定的JS见鬼了,原来是用户在使用时输入的数据都是从WORD中拷贝出来的数据其中包含了"\r\n"这些一大堆的非法字符,导置脚本执行时出异常....部分数据丢失(还好每一步的操作都有备份)...
如下代码:
//给备注赋值
            function SetDemo()
            
{
                var sd 
= 0;
                var dem 
= "";
                
<% 
                
int nm = 0;
                
if(dt_demo!=null  )
              
foreach(DataRow row in dt_demo.Rows)
                
%>
                dem 
="<%=dt_demo.Rows[nm][4].ToString()%>";
                sd
++;
                SetSomeOneDemo(sd,dem);
                
<%
                nm
++;
                }
%>
                 
            }

dem ="<%=dt_demo.Rows[nm][4].ToString()%>";
如这一句如果是正常输入的话是不会有什么问题但是
数据中如果有'\R\N'这样的字符后绑定出来的结果就变了....
如:"abc\r\ndecf"
绑定后就成了
dem="abc
decf";
正是因为这个导致了动态执行时.出现异常从而使dem的值丢失.....
而我的处理是:
dem ="<%=dt_demo.Rows[nm][4].ToString().Replace("\r\n",string.Empty)%>";
这样处理后绑定出来的数据就成了我们要的了..
dem="abc decf";
所以希望大家在使用类似的脚本绑定时注意...记得在存数据或在数据绑定时加以处理....

写这个不能说明什么,代码写的也不怎么样,只是想对有同样写法的老友提个醒不要犯类似的错误....
.............................

posted on 2007-06-05 21:17  WinKen  阅读(343)  评论(0)    收藏  举报

导航