我有一个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
}