为防止按钮多次点击和方便重用,重写了Button控件后(如下):
protected override void AddAttributesToRender(HtmlTextWriter writer)
{
......
writer.AddAttribute(HtmlTextWriterAttribute.Onclick, ClientSideEventReference.ToString(), true);
base.AddAttributesToRender(writer);
}
然后使用此Button时,设置OnClientClick属性后,查看网页源码后发现两个Onclick事件,且OnClientClick设置的事件不起作用了?请问怎么改????
网页源码:<input onclick="this.value = '正在提交,请稍候...';this.disabled = true;__doPostBack('btnAdd','')" type="submit" name="btnAdd" value="提交" onclick="return Validate();" id="btnAdd" />
蓝色的onclick对应的是OnClientClick,红色的onclick对应的是writer.AddAttribute(...)设置的内容。
正常情况是一个onclick,只是把onclientclick合并了。
把生成后以HTML贴出来看看,这里为什么要加一个
writer.AddAttribute。
this.disabled = true
放在Validate() function 后执行