2012-06-28 101 views
1

這是我在.aspx文件中的javascript方法。我想要調用從代碼隱藏這種方法基於一定的條件:根據條件從代碼隱藏調用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方法。如果您認爲我的方法存在缺陷,請提出替代方案。謝謝。

回答

1

使用,以設置/取消OnClientClick

if (obj.fkValidationStatusId.HasValue && obj.fkValidationStatusId.Value.Equals(1)) 
    { 
    btnProceedAddNewRecords.OnClientClick="return confirmboxAndHideMessage();"; 
    } 
else 
    { 
    btnProceedAddNewRecords.OnClientClick="retun false;"; 
    } 
+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; 
    } 
} 

我相信它會爲你工作,只需添加以下代碼。

+0

感謝您回覆我的查詢。請解釋一下「hdrEmpty」和「this.GetType()」參數是做什麼的? –

+0

@ ebad86「this.gettype」它返回當前實例的類型。和「hdrempty」它的一個關鍵字(這是腳本塊的唯一標識符),你可以添加「hdrempty」的地方,無論你想要的,但唯一的。承認你的事件。 –

1

你應該從函數返回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檢查之外設置屬性,否則當條件改變時它不會被更新。

+0

謝謝。我會盡力讓你知道它是否有效。 –