这是我在.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方法。如果您认为我的方法有缺陷,请建议替代方案。感谢。
答案 0 :(得分: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;
}
}
我相信它会对你有用。
答案 1 :(得分:1)
用于设置/取消设置OnClientClick
if (obj.fkValidationStatusId.HasValue && obj.fkValidationStatusId.Value.Equals(1))
{
btnProceedAddNewRecords.OnClientClick="return confirmboxAndHideMessage();";
}
else
{
btnProceedAddNewRecords.OnClientClick="retun false;";
}
答案 2 :(得分: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
的检查之外,否则在条件更改时不会更新。