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 回答