1

これは.aspxファイルの私のjavascriptメソッドです。特定の条件に基づいて、コードビハインドからこのメソッドを呼び出したい:

function confirmboxAndHideMessage() {
    //HideMessage();
    var response = confirm("are you sure?.");
    if (response == true) {
        document.getElementById("<%=chkValidated.ClientID%>").checked = true;
        HideMessage();
    }
    else {
        HideMessage();
        return true;
    }
}

呼び出したい条件は次のようなものです。

        if (obj.fkValidationStatusId.HasValue && obj.fkValidationStatusId.Value.Equals(1))
        {
            btnProceedAddNewRecords.Attributes.Add("OnClick", "javascript:return confirmboxAndHideMessage();");  
        }
        else
        {
            btnProceedAddNewRecords.Attributes.Remove("OnClick");
        }

この条件は、内部のPageLoadイベントで呼び出されるメソッドで実行されています。

if (!IsPostBack) { /* condition */ }

それは機能しておらず、ボタン属性にメソッドを追加する方法が間違っていると思います。私のリクエストは、指定された条件に基づいて、コードビハインドからこのjavascriptメソッドを呼び出す方法を提案してください。私のアプローチに欠陥があると思われる場合は、代替案を提案してください。ありがとう。

4

3 に答える 3

1

条件が次のような場合は、次のコードを追加するだけです。

 public void test()
{
    String name = "test";
    if (name == "test")
    {
        ScriptManager.RegisterStartupScript(this, this.GetType(), "hdrEmpty", "if(confirm('are you sure you want to continue?')==true){ Testfunction(); };", true); return;
    }
}

私はそれがあなたのために働くと確信しています。

于 2012-06-28T06:18:46.090 に答える
1

設定/設定解除に使用 OnClientClick

if (obj.fkValidationStatusId.HasValue && obj.fkValidationStatusId.Value.Equals(1))
  {
     btnProceedAddNewRecords.OnClientClick="return confirmboxAndHideMessage();";  
  }
else
  {
     btnProceedAddNewRecords.OnClientClick="retun false;";
  }
于 2012-06-28T06:21:12.170 に答える
1

trueまたは関数から戻る必要falseがあります。あなたはおそらく肯定的な応答のためにtrueを返したいでしょう:

function confirmboxAndHideMessage() {
  var response = confirm("are you sure?.");
  if (response == true) {
    document.getElementById("<%=chkValidated.ClientID%>").checked = true;
    HideMessage();
    return true;
  } else {
    HideMessage();
    return false;
  }
}

イベント名には小文字を使用し(XHTMLはそれについて慎重であるため)、javascript:コードから削除します。

btnProceedAddNewRecords.Attributes.Add("onclick", "return confirmboxAndHideMessage();");

属性を設定するコードをチェックの外に置きますIsPostBack。そうしないと、条件が変更されても更新されません。

于 2012-06-28T06:22:19.597 に答える