还是javascript传参问题
JS代码:
function ShowOrHideControl(ControlClientID) {
var Control = document.getElementById(ControlClientID);
if (Control.style.display == "block") {
Control.style.display = "none";
}
else Control.style.display = "block";
}
html代码:
< input type="button" id=btn onclick="ShowOrHideControl('<%= dvLeft.ClientID %>')"/>
dvLeft是一个div,有runat="server"标记
这样写可以传的参数实际上是dvLeft的服务器控件ID,可以运行。
但是如果html代码换一下,把btn加一个runat="server"标记以后,传的参数就不是dvLeft的服务器控件ID了,
真搞不懂为什么。现在还是想将dvLeft的ClientID传过去,应该怎么写呢?
javascript
server
传参
ClientID
------解决方案--------------------帮顶!
------解决方案--------------------何必要一定要家runat=server
------解决方案--------------------你用母版页了么?
------解决方案--------------------你可以在page_load(或者、其实更好地是在Page_prerender)中写:
btn.Attribute["onclick"]=string.Format("ShowOrHideControl('{0}');", dvLeft.ClientID);
------解决方案--------------------如果有母版页 用户控件中使用
那么需要传递给前台ClientId才会被js正确引用(针对runat="server"的服务器控件)
------解决方案--------------------< input type="button" id=btn runat=server />
<script>
document.getElementById("<%=btn.ClientID %>").onclick=function(e){
ShowOrHideControl('<%= dvLeft.ClientID %>')
};
</script>
------解决方案--------------------------解决方案--------------------http://www.cnblogs.com/volnet/archive/2008/01/08/1029699.html
加上runat后就把<自动转码为<,认不出里面的code了,既然你一定要改成html控件加runat这种变态模式,就只能去cs文件中处理了,服务器控件本来也应该是这么操作的
------解决方案--------------------