2

以下查询在文本框中

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 或在该点停止,它只是在函数后面的代码中传递了所有行

4

3 回答 3

0

有几种方法可以解决此问题。

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

    Confirm函数改成这样:

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

    如果返回 0,请CnfHide通过在浏览器中查看页面源来搜索生成的标记,并检查 id 是否与您的选择器匹配。

    看到您正在使用 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 调用的客户端方法未触发

    客户端脚本不会使用 ScriptManager 执行

于 2013-08-21T10:24:29.817 回答
0

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

或者试试像这样的 in.cs 代码

字符串味精1;msg1 = "confirm('您确定要删除 Madhuri 的数据...!');"; if (!ClientScript.IsStartupScriptRegistered("error")) { RegisterStartupScript("error", msg1); }

于 2013-08-21T10:13:42.923 回答
0

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,那么它将始终只是“在函数后面的代码中传递所有行”。

于 2013-08-21T10:19:18.867 回答