簡體   English   中英

從后面的代碼調用(C#)時Javascript函數不起作用

[英]Javascript function do not work when called from code behind(C#)

我有這個javascript函數:

<script type="text/javascript">
        function montaDataSubstituicaoPrestador(dt_exclusao) {

            var arrData = dt_exclusao.split('/');
            var exclusaoFormatada = arrData[1] + '-' + arrData[0] + '-' + arrData[2];
            var dias = parseInt(prazoSubPrestador);
            var novaData = new Date(arrData[2], arrData[1] - 1, arrData[0]);

            novaData.setDate(novaData.getDate() + dias);

            hoje = new Date(novaData)
            dia = hoje.getDate()
            mes = hoje.getMonth()
            ano = hoje.getFullYear()
            if (dia < 10)
                dia = "0" + dia

            if ((mes + 1) < 10)
                mes = "0" + (mes + 1);

            if (ano < 2000)
                ano = "19" + ano

            var dt = dia + "/" + (mes) + "/" + ano;

            document.getElementById('lblPrazoSubsAns').innerHTML 
                                             = "Prazo de substituição: " + dt;
        }
    </script>

我從后面的代碼有這個電話:

ClientScriptManager cs = Page.ClientScript;
cs.RegisterClientScriptBlock(this.GetType(), 
         "MontaDataExclusaoPrazoANS", 
         "montaDataSubstituicaoPrestador(" + calDataExclusao.Date + ")", true);

這行不通。 什么都沒發生。 我必須做什么?

如果我這樣做,則工作但參數為null:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
               "_montaDataSubstituicaoPrestador", 
               "montaDataSubstituicaoPrestador(null);", true);

但是,如果改變不起作用。 不接受串聯字符:

ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
               "_montaDataSubstituicaoPrestador", 
               "montaDataSubstituicaoPrestador(" + nova_data + ");", true);

這樣,我有這個錯誤:

參數列表后未捕獲到的SyntaxError:缺少)

為什么?

嘗試更改您的功能

ClientScriptManager cs = Page.ClientScript;
            cs.RegisterClientScriptBlock(this.GetType(), "MontaDataExclusaoPrazoANS", "montaDataSubstituicaoPrestador(" + calDataExclusao.Date + ")", true)

ClientScriptManager cs = Page.ClientScript;
            cs.RegisterClientScriptBlock(this.GetType(), "MontaDataExclusaoPrazoANS", "montaDataSubstituicaoPrestador('" + calDataExclusao.Date + "')", true)

和為

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "_montaDataSubstituicaoPrestador", "montaDataSubstituicaoPrestador(" + nova_data + ");", true);

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "_montaDataSubstituicaoPrestador", "montaDataSubstituicaoPrestador('" + nova_data + "');", true);

由於javascript無法將直接參數理解為參數,因此在連接時必須用單引號將其指定。 希望它能工作

嘗試這個 :

protected void btnSUbmit_Click(object sender, EventArgs e) { string check = "hello"; Page.ClientScript.RegisterStartupScript(this.GetType(), "myScript", "montaDataSubstituicaoPrestador('" + check + "')", true); }

暫無
暫無

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

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