[英]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;";
}
您應該從函數返回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
的檢查之外,否則在條件更改時不會更新。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.