javascript通过后台代码进行确认



以下查询位于文本框中

SELECT  [Brewery], [CP CS]   FROM [Vw_QueryBuilder_27QueryBuilder1]  

这两个字段在一些报告中使用

现在,如果有人删除了上面的任何一列,那么它将要求确认删除所有相关的报告

我被确认卡住了

我试过类似

  ScriptManager.RegisterStartupScript(Page, typeof(Page), "somekey", "Confirm()", true);
                   // Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "Confirm()", true);
                  //  Response.Write("<script>javascript:Confirm();</script>");
                    string confirmValue = CnfHide.Value.Trim();
                    if (confirmValue == "1")

javascript是

 function Confirm() {
        if (confirm("Some columns are being used in other reports, removing those columns from query builder will lead to remove all related reports. Dou you want to proceed?")) {
            $("#ContentPlaceHolder1_CnfHide").val("1");
        } else {
            $("#ContentPlaceHolder1_CnfHide").val("0");
        }
    }

确认窗口出现,但它没有存储值1或0,也没有停止在该点,它只是通过了函数后面代码中的所有行

您可以使用PopUpextender并开发类似于java脚本的confirm参考岗位http://www.codeproject.com/Questions/185470/Javascript-confirm-message-from-code-behind

或者像这样尝试.cs代码

字符串msg1;msg1="确认('是您确定要删除马杜里的数据…!');";if(!ClientScript.IsStartupScriptRegistered("error")){RegisterStartupScript("错误",消息1);}

要在客户端使用confirm(),您确实需要从函数中返回一个值。例如

function Confirm() {
    var result = confirm("Some columns are being used in other reports, removing those columns from query builder will lead to remove all related reports. Dou you want to proceed?");
    if (result) {
        $("#ContentPlaceHolder1_CnfHide").val("1");
    } else {
        $("#ContentPlaceHolder1_CnfHide").val("0");
    }
    return result;
}

如果您没有从函数返回true或false,那么它将始终"传递函数后面代码中的所有行"。

有几种方法可以解决这种行为。

  1. 您的选择器没有返回任何元素

    Confirm功能更改为:

    function Confirm() {
      console.log($("#ContentPlaceHolder1_CnfHide").length);
    }
    

    如果返回0,请在浏览器中查看页面的源代码,并检查id是否与选择器匹配,从而在生成的标记中搜索CnfHide

    鉴于您正在使用ASP.NET,您可能希望使用此方便的函数,该函数将返回ID以您指定的值结尾的元素。当您将元素封装在另一个服务器端控件中时,这很方便。

    $.extend({
      clientID: function (id) {
        return $("[id$='" + id + "']");
      }
    });
    

    用法:$.clientID('CnfHide').val("0");

  2. 脚本未发送到客户端

    您可以通过在浏览器中查看页面的来源并搜索类似if (confirm("Some columns are being use 的内容来确认这一点

    如果在页面上找不到此字符串,则需要找出ScriptManager类没有将此数据发送到客户端的原因。

    以下是一些可能帮助您识别服务器端问题的资源

    向ScriptManager注册的启动脚本。RegisterStartupScript未呈现到页面

    ScriptManager.RegisterStartupScript调用的客户端方法未启动

    客户端脚本获胜';t使用ScriptManager 执行

最新更新