OnelintClickとOnClickイベントの違い

4262 ワード

web開発では、コントロールのOnClintCickとOnClickイベントがよく使われます.
使い方が間違っていると、思いがけないことが起きたり、わからないことがよくあります.
 
まずこの二つの事件を理解したいです.
OnelintClickはクライアントイベントの方法で、JavaScriptを使って処理します.つまりクライアントブラウザで直接実行します.クリックしたら実行します.
OnClickイベントはサーバ端イベントの処理方法で、サーバ端、つまりIISで実行されます.ボタンをクリックして、postbackを実行して、運転します.
 
もし一つのボタンで同時にクライアントのOnClintClick方法があったら、OnClickイベントの処理方法がありますが、どうやって正常な論理で実行できますか?
 
OnClientClickでは、いくつかのクライアントの検出を行うためによく使われています.もちろんサーバーに置いても同じような検査ができますが、サーバーとの相互作用、資源の消耗、そしてユーザーの体験がよくないです.
例:
ふうふDelConfirm()はjavascript関数で、btnDel_Clickはボタンのクリックイベントです.
 
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 

CommandName="Delete" OnClientClick="return fun_DelConfirm();" Text="  ">
 
このボタンをクリックすると、自動的にクライアントのJSコードを実行してから、サーバー側を実行します.クライアントがfalseに戻ると、サーバ側で対応する方法は永遠に実行されない.これで検出に到達し、サーバー側の方法を実行するのは通過のみです.
つまり上に書いたら、
 
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 

CommandName="Delete" OnClientClick="return fun_DelConfirm();return false;" onclick="return btnDel_Click;"Text="  ">
 
じゃあ、ふうふつしても.DelConfirm実行の結節はどうなりますか?サーバー側の対応するfun_DelConfirm方法はいつまでも実行されません.return falseはクライアントをfalseに戻すためです.
もし私達が書いたら:
 
<asp:Button ID="btnDel" Width="80px" CssClass="buttonstyle" runat="server" Text="  " OnClientClick="fun_DelConfirm();"OnClick="btnDel_Click" />
 
じゃあふうふふDelConfirm()とbtnDel_Clickはいずれも実行されます.このようにしても効果が得られないということは、検査によってサーバーを実行する方法がないということです.
最も良い方法は実はクライアントが検出して、もし正しくないことを検出したら、サービスエンドの方法を実行しないで、正しいことを検出してからサービスエンドの方法を実行します.
 
 
   
        ,      ,    。



               ,          【  】  。



            ,      ,  Bull Li。