0

割り当てられたコードの問題を解決する必要があります。問題は、 statemantでこのコードに従うことです。page.init else

Me.SaveChangesButton.Attributes.Add("OnClick", 
    "if (!confirm('Are you sure?')){
        return false;
     } else {
        document.getElementById('SaveChangesButton').disabled = true; 
        document.getElementById('rejectButton').disabled = true;
     }
")

このコードをオーバーライドします:

Protected Sub SaveChangesButton_Click(ByVal sender As Object, ByVal e As 
System.EventArgs) Handles SaveChangesButton.Click

質問[編集]

  1. 関数confirm()を上書きしないようにボタンにバインドするにはどうすればよいですか?handler
  2. コードのどこにバインドするのがベストプラクティスですか?
  3. 2番目の部分を削除すると正しく機能しますが、2番目の部分のみがハンドラーをオーバーライドすることを理解else {document.getElementById('SaveChangesButton').disabled = true; document.getElementById('rejectButton').disabled = true;}しているので、実行を継続するようにどのように記述すればよいですか?SaveChangesButton_Click
  4. document.getElementById('SaveChangesButton').disabled = true; document.getElementById('rejectButton').disabled = true; これらの2行を実行し、 オーバーライドせずにハンドラーを実行するにはどうすればよいですか?SaveChangesButton_Click
4

1 に答える 1

2

1)OnClientClickを使用する必要があります:

Me.SaveChangesButton.OnClientClick = @"
    if (!confirm('Are you sure?')) {
        return false;
    } else {
        document.getElementById('SaveChangesButton').disabled = true; 
        document.getElementById('rejectButton').disabled = true;
    }"

2)でバインドするSaveChangesButton_ClickPage.Init、私も設定しOnClientClickます。

3,4)サーバー側(もちろん)のOnClientClick前での火災(一種)。OnClickこれにより、を起動する前にボタンを無効にすることができますOnClick。またOnClick、無効になっているボタンでは起動しません。何をすべきか?ボタンの無効化を遅らせます

Me.SaveChangesButton.OnClientClick = @"
if (!confirm('Are you sure?')) {
    return false;
} else {
    setTimeout(function(){
        document.getElementById('SaveChangesButton').disabled = true; 
        document.getElementById('rejectButton').disabled = true;
    }, 100);
}"

そして、これは実際にあなたの質問をこれの複製にします...

于 2013-02-02T12:29:23.867 に答える