全局静态变量不变值

时间:2019-01-22 08:52:56

标签: c# webforms

我正在尝试创建一个应用程序,管理员可以在其中更改一些全局值,这将影响每个用户的应用程序。

我尝试使用静态

班级

public static class Inventario
{
    public static int FiltroEtiquetas;

    public static int NumLocalizacoes;

    public static void GetInventario()
    {

    }
}

页面

protected void Page_Load(object sender, EventArgs e)
{

   txtFiltroEtiquetas.Text = Inventario.FiltroEtiquetas.ToString();
   txtNumLocalizacoes.Text = Inventario.NumLocalizacoes.ToString();
}
protected void btnSaveInventaryChanges_Click(object sender, EventArgs e)
{

   Inventario.FiltroEtiquetas = Convert.ToInt32(txtFiltroEtiquetas.Text);
   Inventario.NumLocalizacoes = Convert.ToInt32(txtNumLocalizacoes.Text);
   Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "ShowToast('OK', 'topCenter','success', 'Alterações Guardadas com sucesso.', '2000')", true);
 }

每当我打开模态时,该值始终为0,它不会保存更改

2 个答案:

答案 0 :(得分:2)

在页面加载时,您正在使用全局变量重置两个文本框,而在单击按钮时,您正在执行反向操作,因此将其重置。这就是为什么您看到0值的原因。

您需要从page_load中删除代码,或者对此应用一些条件。

您可以执行以下操作:

protected void Page_Load(object sender, EventArgs e)
{
   if(!IsPostBack)
   {
      txtFiltroEtiquetas.Text = Inventario.FiltroEtiquetas.ToString();
      txtNumLocalizacoes.Text = Inventario.NumLocalizacoes.ToString();
   }
}

答案 1 :(得分:1)

我认为在这种情况下使用静态变量确实不是一个好主意。我认为您最好使用应用程序变量。