当从其他类中改变时,警报框不显示静态字符串,但当我从原始类中改变时,警报框却能显示。

问题描述 投票:0回答:1

我有一个c#网络应用程序,我试图向用户显示从Data.cs类中获取的错误。我试图向用户显示我从Data.cs类中获取的错误。我在代码后台文件(Udalost.aspx.cs)中有一个公共静态字符串,并且我在它们出现时向这个字符串添加错误。

问题是当我从我的Udalost.aspx.cs类中更改文本时,一切都能正常工作,但当我从我的Data.cs(静态类)中更改它时,警报框没有显示。我试过在调用提醒框的那一行停止,甚至把字符串值改成Udalost.aspx.cs设置的那样(效果不错),即使这样,提醒框也没有弹出来,所以可能不是字符串值的问题。

也许是时间问题,我是在Page_PreRender处调用方法来写提示框的,问题似乎不在于字符串值......new liners (\n;\n),我试过使用Udalost.aspx.cs中的方法,这就是为什么它是公共静态的,但我没有运气。我试过在data.cs中保存到DataBase后直接调用inner_ShowMessageToUser,也没有弹出提示框。

//Udalost.aspx.cs - WebForm2   
protected void Page_PreRender(object sender, EventArgs e)//after everything is done and before sending to client
        {
            ProvedPredOdeslanimKlientovi();
        }
        private void ProvedPredOdeslanimKlientovi()
        {
            if(ErrorMessage != "")//if some error occured
            {
                inner_ShowMessageToUser(ErrorMessage);//show the allert box called only from one place in app
                ErrorMessage = "";//null the ms
            }
        } 

        public static void ShowError(string error)//add some error to the Error ms and do new line
        {
            ErrorMessage = error + "\\n";//přidej zprávu a odřádkuj
        }
public void inner_ShowMessageToUser(string text)//show the alert box - called only once
    {
        try
        {
            this.Page.ClientScript.RegisterStartupScript(this.GetType(), "ex", "alert('" + text + "');", true);
            //Page.ClientScript.RegisterStartupScript(this.GetType(), "DeleteCond", $"<script type=text/javascript> alert('{text}')</script>");
        }
        catch(Exception e)
        {

            Data.ExeptionHandler(e);
        }

    }


//Data.cs
private static void ShowError(string error)
        {
            WebForm2.ErrorMessage += error+ "\\n";//the same but for Data.cs
        }
c# asp.net web-applications alert
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.