簡體   English   中英

根據條件從代碼隱藏調用Javascript方法。

[英]Invoke Javascript method from code-behind based on a condition.

這是我在.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方法。 如果您認為我的方法有缺陷,請建議替代方案。 謝謝。

只需在條件類似的地方添加以下代碼即可

 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;
    }
}

我相信它會對你有用。

用於設置/取消設置OnClientClick

if (obj.fkValidationStatusId.HasValue && obj.fkValidationStatusId.Value.Equals(1))
  {
     btnProceedAddNewRecords.OnClientClick="return confirmboxAndHideMessage();";  
  }
else
  {
     btnProceedAddNewRecords.OnClientClick="retun false;";
  }

您應該從函數返回truefalse 您可能希望返回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的檢查之外,否則在條件更改時不會更新。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM