<asp:Button runat="server" ID="button5" OnClientClick="return DeleteCheck(this)" Text="Asp:button" OnClick="button5_Click" />
<asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton>直接放到form标记中生成的html代码
<script type="text/javascript">
<!——
var theForm = document.forms['form1'];
if (!theForm) {
theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
// ——>
</script>
<input language="javascript" onclick="__doPostBack('delete','')" name="delete" type="button" id="delete" value="Server button" />
<input type="button" onclick="return DeleteCheck(this)" id="Button1" value="Client button" />
<input name="Button2" type="submit" id="Button2" onclick="return DeleteCheck(this)" value="Server submit" />
<input type="submit" onclick="return DeleteCheck(this)" id="Button3" value="Client submit" />
<button id="button4" onclick="return DeleteCheck(this)" value="Button-Button">Button-Button</button>
<input type="submit" name="button5" value="Asp:button" onclick="return DeleteCheck(this);" id="button5" />
<a id="LinkButton1" href="javascript:__doPostBack('LinkButton1','')">LinkButton</a>这里有可以看出几点:
1.当html服务器控件在服务器端添加了服务器事件后生成的代码变为:onclick="_doPostBack()",实际上是调用脚本把整个窗体提交到服务器(假如没有添件服务器事件而只是添加了runat="server"是不会发送到服务器端的)这里注重假如要在html服务器控件中添加一个客户端事件如上面的 <input runat="server" type="button" id="delete" value="Server button" onserverclick="delete_ServerClick" />
变成 <input runat="server" type="button" id="delete" value="Server button" onclick="return DeleteCheck(this)" onserverclick="delete_ServerClick" />
那样生成的html代码变成 <input language="javascript" onclick="return DeleteCheck(this) __doPostBack('delete','')" name="delete" type="button" id="delete" value="Server button" />提示有脚本错误原因是onclick事件执行了2个脚本且书写的格式不正确。onclick="return DeleteCheck(this);_doPostBack()"这样的话就只能执行第一个函数而第二个函数就不能执行了(return)。假如用onclick="return DeleteCheck(this),_doPostback()"是指2个函数同时都要执行没有影响(相当于一条语句)。
评论加载中…
![]() |