繁体   English   中英

停止在每次回发时触发警报框

[英]stop alert box from firing on every postback

我有一个网络表单,当未找到搜索的项目时,它会显示一个警告框。 警报框都是 asp 端,在代码隐藏中调用它是 c# 端。

问题是在第一次调用之后,它会调用页面的每次回发。 单击后,它不应再次触发,直到再次错过搜索。

我试过if(!ispostback) ,但最初的触发是回发,所以它根本不会触发。 在回发期间,它甚至不会再次调用 c# 代码,它只显示警报框。

    <style type="text/css">
        .alertBox
        {
            position: absolute;
            top: 100px;
            left: 50%;
            width: 500px;
            margin-left: -250px;
            background-color: #fff;
            border: 1px solid #ccc;
            border-radius: 4px;
            box-sizing: border-box;
            padding: 4px 8px;
        }
    </style>
    <script type="text/javascript">
        function closeAlert(e) {
            e.preventDefault();
            this.parentNode.style.display = "none";
        }
    </script>
</head>
<body>
    <form id="form_rooftopSAQPM" runat="server">
    <div runat="server" id="AlertBox" class="alertBox" Visible="false">
        <div runat="server" id="AlertBoxMessage"></div>
        <button onclick="closeAlert.call(this, event)">Ok</button>
    </div>
...
        private void site_Load(string siteNumber)
        {
            DataSet ds = retrieveDataFromSQL("exec s_RooftopSite " + siteNumber, "Couldn't retrieve site information");
            if(ds.Tables.Count>0)
            {
                //load the fields
                txtFoo.Text = ds.Tables[0].Rows[0][0].ToString();
            }
            else
            {
                MessageBoxShow("Site not found.");
            }
        }


protected void MessageBoxShow(string message)
        {
                this.AlertBoxMessage.InnerText = message;
                this.AlertBox.Visible = true;
        }

...

如何将警报框设置为仅在被 c# 代码调用时触发,但仍允许它在第一次调用时弹出,这是回发?

我通过从 JavaScript 切换到 C# 来修复它:

ASP:

<asp:Button runat="server" id="btnCloseAlert" 
     onclick="btnCloseAlert_Click" Text="Ok" /> 

C#中的代码隐藏:

protected void btnCloseAlert_Click(object sender, EventArgs e) 
{ 
    AlertBox.Visible = false; 
    AlertBoxMessage.InnerText = "";
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM