c# - 在页面加载时触发 RadButton Onclientclicked

标签 c# asp.net telerik

当我使用 telerik radbutton 时

<telerik:RadButton ID="RadButton1" runat="server" Text="Stackoverflow" 
Skin="Default" OnClientClicked="SaveIt()" CommandArgument="Edit">
</telerik:RadButton>

刷新页面后,总是SaveIt()函数开始工作。 但; 当我使用按钮时,它仅在用户单击时起作用。

<button type="button" onclick="SaveIt()">Stackoverflow</button>

它们有什么区别?

最佳答案

这里有几件事。 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>

希望这能回答您的问题。

关于c# - 在页面加载时触发 RadButton Onclientclicked,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11856587/

相关文章:

c# - 如何给下拉列表控件设置默认值?

c# - 测试将对象作为参数的 GET 请求(Asp.NET WebApi Controller )

javascript - 使用 Kendo UI 折线图,如何保持条形点连接? (见图)

css - 如何在kendo ui网格中设置多行列

c# - WPF UserControl.Resources 引用

c# - 创建两个实现相同接口(interface)的单例服务

c# - Asp.Net Core 2.2 中 MvcJsonOptions 的 AddJsonOptions

c# - 如何使用 C# 在命令提示符中执行命令

c# - 编辑项目列表 c#

c# - 生成文件后如何关闭启动消息?