解决用户控件里面的JavaScript函数重名的问题

使用VS2008开发一个选择人员的用户控件,里面使用了JavaScript方法,原来是将JavaScript方法写在页面 <script>标记里面的。开始时页面上只使用一个这个选择人员的用户控件时没有问题,但是如果页面上使用了2个或者多个这个选择人员的用户控件时,就出现脚本错误了。检查了一下,原来是使用多个时,页面上有同名的JavaScript方法,每次调用时只有调用后面的那个JavaScript方法,前面的那个方法就不起作用了。解决办法是:将JavaScript方法写在后台的cs文件里面,不用写在页面上。
ContractedBlock.gif ExpandedBlockStart.gif Code
                string script = "<script>" + "\r\n";
                script 
+= "function EmployeeChoose(SingleChoose,HideSelectValue,SelectName) {" + "\r\n";
                script 
+= "var selectValue = document.all.item(HideSelectValue).value;" + "\r\n";
                script 
+= "var features = 'help:no;status:yes;scroll:no;dialogTop:(srceen.availheigh/2)-250;dialogLeft:(screen.availwidth/2)-315;dialogWidth:450px;dialogHeight:330px;';" + "\r\n";
                script 
+= "var returnValue = window.showModalDialog('/UserControl/StaffChooseList.aspx?SelectValues='+selectValue+'&SingleChoose='+SingleChoose, '', features);" + "\r\n";
                script 
+= "if (returnValue != undefined) {" + "\r\n";
                script 
+= "document.getElementById(HideSelectValue).value = returnValue.split('|')[0];" + "\r\n";
                script 
+= "document.getElementById(SelectName).value = returnValue.split('|')[1]; " + "\r\n";
                script 
+= "}" + "\r\n";
                script 
+= "}" + "\r\n";
                script 
+= "</script>" + "\r\n";
                Page.ClientScript.RegisterClientScriptBlock(
this.GetType(), "EmployeeChooser", script);

前台调用时:<span style="cursor: hand" id="EmpChoose" onclick ="EmployeeChoose('<%=SingleChoose %>','<%=HideSelectValue.ClientID %>','<%=SelectName.ClientID %>');">

这样就可以避免出现javascript同名函数的问题了。

转载于:https://www.cnblogs.com/hanjin/archive/2008/10/28/1321359.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值