这里有几件事。RadButton 和普通 HTML 按钮的区别如下:
使用 RadButton 时,生成的客户端 HTML 如下:
<a id="btnStandard" class="RadButton RadButton_Office2010Silver rbSkinnedButton"
href="javascript:void(0)">
<input class="rbDecorated" type="submit" name="btnStandard_input"
id="btnStandard_input" value="Standard Button" />
<input id="btnStandard_ClientState" name="btnStandard_ClientState"
type="hidden" />
</a>
如您所见,生成的类型是“提交” - 这意味着它将提交表单到服务器。因此,如果您刷新它将尝试再次重新发送表单。我不明白的是 - 你用过 ajax 面板吗?因为如果您使用过 ajax 面板,单击按钮会触发 ajax 发布到服务器,当您刷新页面时,它就像是第一次而不是回发一样。
普通的 html 不适用于表单提交。它只是用来触发客户端的点击事件。
话虽如此 - OnClientChecked 的签名如下:
OnClientChecked="<js function name>"
注意:您应该只提供不带括号的函数名称,即 ( 和 )。
在您的情况下,因为您提供了括号 - 当按钮被初始化时,与其关联的客户端函数正在执行,并且您的 Javascript 代码在运行时运行。
所以这是正确的代码:
<telerik:RadButton runat="server" Text="test" OnClientClicked="func" />
<script>
function func() {
alert("clicked");
}
</script>
希望这能回答你的问题。