我正在尝试创建一个应用程序,管理员可以在其中更改一些全局值,这将影响每个用户的应用程序。
我尝试使用静态
班级
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,它不会保存更改
答案 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)
我认为在这种情况下使用静态变量确实不是一个好主意。我认为您最好使用应用程序变量。