如果一个usercontrol里写了一段JS,而这个usercontrol的多个实例注册到页面上,那么页面上就有多个相同的方法名。实行
javascript方法的时候就会执行最后一个。怎么解决各个usercontrol实例执行各自的方法呢?于是想到给方法传参数,例如:
<asp:Button
ID="Button1" runat="server" OnClientClick="return
Fun('<%=TextBox1.ClientID %>')"
Text="Button" />
<asp:TextBox
ID="TextBox1" runat="server"></asp:TextBox>
<%=TextBox1.ClientID
%>当做是一个字符串而不是需要编译的代码。解决这个问题的办法就只能是把Button的OnClientClick去掉,然后在后台注册它的前台脚本:
string tbValue=this.TextBox1.Text;
Button1.Attributes.Add("onclick","return
Fun('"+tbValue+"')");
这样就OK了,正确传参后方法就会各自执行各自的,不会相互干扰了。