如何在asp按钮上禁用回发并仍然运行OnClick方法?

时间:2015-03-30 14:32:26

标签: javascript c# asp.net code-behind

是的,可以简单地向OnClientClick添加一个返回false,但由于OnClick上的函数停止工作,因此该工作做得不好。

我在按钮上的OnClick属性上使用的函数将数据从数据库中取出并对其执行某些操作。虽然我在那里返回假,但没有任何事情发生。当它不存在时,页面会保持刷新,没有任何操作。

请,如果有人有办法阻止回发而不阻止OnClick属性上的方法会很棒!

HTML

 <asp:Button Text="Edit Ceredntials"  OnClientClick="ShowWindow('#EditDetails', 2500)" OnClick="GetUserData" runat="server" />

1 个答案:

答案 0 :(得分:3)

您无法阻止回发并仍然运行OnClick方法。那是因为OnClick在服务器上运行,它可以执行的唯一方法是通过回发。

如果您真正想要完成的是阻止页面丢失状态和刷新,那么您应该使用AJAX和兼容的服务器端框架,例如Web API

<script type="text/javascript">
function loadUserDetails(){
    $.ajax({
        url: 'api/Users/2500',
        type: 'GET'
     })
    .success(function(userDetails){
        $("#FirstName").val(userDetails.FirstName);
        ShowWindow('#EditDetails', 2500);
    });
}
</script>

<asp:Button runat="server" OnClientClick='loadUserDetails()' Text="Edit Credentials" />