禁用asp.net按钮的服务器端

时间:2012-04-28 15:15:52

标签: asp.net devexpress

如何禁用按钮回调,我只想在客户端使用此按钮?

<dx:ASPxButton ID="btn_clear" runat="server" 
    Text="Clear" Width="90px" OnClick="btn_clear_Click">
    <ClientSideEvents Click = "OnClick" />
</dx:ASPxButton>

5 个答案:

答案 0 :(得分:3)

onClientClick=return false将阻止处理正常的回发。如果你想在客户端做一些自定义的javascript,你可以在那之后调用return false

<asp:Button id="btn1" runat="server" onClientClick="return MyFunction" />

并在javascript中

function MyFunction()
{
  //Do your custom code

 return false;
}

答案 1 :(得分:3)

根据你的按钮标签前缀来看,你看起来好像在使用Devexpress组件而不是普通的asp.net按钮。 Devexpress'ASPxButton控件客户端点击事件具有processOnServer属性,您可以将其设置为false以防止回发:

<dx:ASPxButton ID="btn_clear" runat="server" 
    Text="Clear" Width="90px" OnClick="btn_clear_Click">
    <ClientSideEvents Click = "OnClick" />
</dx:ASPxButton>

和您的OnClick() javascript函数:

function OnClick(s, e)
{
        e.processOnServer = false;
}

不使用第三方组件,如果你想要一个按钮来做客户端的事情,那么只需使用HTML输入按钮,但是如果你想拥有asp.net按钮的客户端功能(如导致验证)然后Shyju's answer即可。

答案 2 :(得分:1)

关于简单地删除OnClick处理程序?

<dx:ASPxButton ID="btn_clear" runat="server" 
    Text="Clear" Width="90px">
    <ClientSideEvents Click = "OnClick" />
</dx:ASPxButton>

甚至更好,只需首先使用HTML按钮(<input type="button" />)。

答案 3 :(得分:0)

你不能。

服务器端控件必须在服务器端运行。

如果省略runat="server"属性,则标记会像这样呈现完全

<dx:ASPxButton ID="btn_clear" 
    Text="Clear" Width="90px" OnClick="btn_clear_Click">
    <ClientSideEvents Click = "OnClick" />
</dx:ASPxButton>

浏览器将完全忽略这一点,因为元素dx:ASPxButton不是有效的HTML元素。

答案 4 :(得分:0)

只需添加一个属性AutoPostBack =“false”,这将停止回发,仍然需要使用客户端脚本调用服务器端功能,可以使用回调面板