ボタンのコールバックを無効にする方法、このボタンをクライアント側でのみ使用したいですか?
<dx:ASPxButton ID="btn_clear" runat="server"
Text="Clear" Width="90px" OnClick="btn_clear_Click">
<ClientSideEvents Click = "OnClick" />
</dx:ASPxButton>
ボタンのコールバックを無効にする方法、このボタンをクライアント側でのみ使用したいですか?
<dx:ASPxButton ID="btn_clear" runat="server"
Text="Clear" Width="90px" OnClick="btn_clear_Click">
<ClientSideEvents Click = "OnClick" />
</dx:ASPxButton>
onClientClick=return false
通常のポストバックの処理を妨げます。クライアント側でカスタムJavaScriptを実行する場合は、その後returnfalseを呼び出すことができます
<asp:Button id="btn1" runat="server" onClientClick="return MyFunction" />
そしてjavascriptで
function MyFunction()
{
//Do your custom code
return false;
}
ボタンタグのプレフィックスから判断すると、通常のasp.netボタンではなくDevexpressコンポーネントを使用しているように見えます。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の答えは行く方法です。
単にOnClickハンドラーを削除するのはどうですか?
<dx:ASPxButton ID="btn_clear" runat="server"
Text="Clear" Width="90px">
<ClientSideEvents Click = "OnClick" />
</dx:ASPxButton>
または、最初にHTMLボタンを使用することをお勧めします(<input type="button" />
)。
できません。
サーバー側のコントロールは、サーバー側で実行する必要があります。
属性を省略すると、マークアップは次のように正確runat="server"
にレンダリングされます。
<dx:ASPxButton ID="btn_clear"
Text="Clear" Width="90px" OnClick="btn_clear_Click">
<ClientSideEvents Click = "OnClick" />
</dx:ASPxButton>
dx:ASPxButton
要素は有効なHTML要素ではないため、これはブラウザによって完全に無視されます。
属性AutoPostBack="false"を追加するだけで、ポストバックが停止します。それでも、クライアント側のスクリプトを使用してサーバー側の関数を呼び出す必要があります。コールバックパネルを使用できます。