OnelintClickとOnClickイベントの違い
4262 ワード
web開発では、コントロールのOnClintCickとOnClickイベントがよく使われます.
使い方が間違っていると、思いがけないことが起きたり、わからないことがよくあります.
まずこの二つの事件を理解したいです.
OnelintClickはクライアントイベントの方法で、JavaScriptを使って処理します.つまりクライアントブラウザで直接実行します.クリックしたら実行します.
OnClickイベントはサーバ端イベントの処理方法で、サーバ端、つまりIISで実行されます.ボタンをクリックして、postbackを実行して、運転します.
もし一つのボタンで同時にクライアントのOnClintClick方法があったら、OnClickイベントの処理方法がありますが、どうやって正常な論理で実行できますか?
OnClientClickでは、いくつかのクライアントの検出を行うためによく使われています.もちろんサーバーに置いても同じような検査ができますが、サーバーとの相互作用、資源の消耗、そしてユーザーの体験がよくないです.
例:
ふうふDelConfirm()はjavascript関数で、btnDel_Clickはボタンのクリックイベントです.
このボタンをクリックすると、自動的にクライアントのJSコードを実行してから、サーバー側を実行します.クライアントがfalseに戻ると、サーバ側で対応する方法は永遠に実行されない.これで検出に到達し、サーバー側の方法を実行するのは通過のみです.
つまり上に書いたら、
じゃあ、ふうふつしても.DelConfirm実行の結節はどうなりますか?サーバー側の対応するfun_DelConfirm方法はいつまでも実行されません.return falseはクライアントをfalseに戻すためです.
もし私達が書いたら:
じゃあふうふふDelConfirm()とbtnDel_Clickはいずれも実行されます.このようにしても効果が得られないということは、検査によってサーバーを実行する方法がないということです.
最も良い方法は実はクライアントが検出して、もし正しくないことを検出したら、サービスエンドの方法を実行しないで、正しいことを検出してからサービスエンドの方法を実行します.
使い方が間違っていると、思いがけないことが起きたり、わからないことがよくあります.
まずこの二つの事件を理解したいです.
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。