如何在页面刷新时增加值?

时间:2016-11-15 06:37:55

标签: c# asp.net

我想在页面刷新时增加价值。我该怎么办?

我的代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        int evrno = 021006;
        string EVRAKNO = "SP-";
        if (Page.IsPostBack == false)
        {
            evrno = evrno + 1;    
        }

        string EvrakNu = EVRAKNO + Convert.ToString(evrno);
        txt_EvrakNo.Text = EvrakNu;    
    }

5 个答案:

答案 0 :(得分:2)

优化工作代码逻辑

protected void Page_Load(object sender, EventArgs e)
    {
        //Set default initial value in session
        int evrno = (Session["evrno"] != null && Session["evrno"].ToString() != string.Empty) ? Convert.ToInt32(Session["evrno"]) : 021006;
        string EVRAKNO = "SP-";
        if (!Page.IsPostBack)
        { 
            //get value saved in Session
            evrno +=1;
            //set save new value in session
            Session["evrno"] = evrno;
        }
        string EvrakNu = EVRAKNO + Convert.ToString(evrno);
        txt_EvrakNo.Text = EvrakNu;
    }

更好的方法。

由于 快乐的编码。

答案 1 :(得分:1)

您可以使用会话状态。您正在创建的页面上的变量将在页面加载时反复重置。

protected void Page_Load(object sender, EventArgs e)
        {
            if(Session["evrno"] != null)
               Session["evrno"] = 21006;
            int evrno;
            string EVRAKNO = "SP-";
            if (Page.IsPostBack == false)
            {
                evrno = Convert.ToInt32(Session["evrno"].ToString());
                evrno = evrno + 1;    
                Session["evrno"] = evrno 
            }

            string EvrakNu = EVRAKNO + Convert.ToString(evrno);
            txt_EvrakNo.Text = EvrakNu;    
        }

答案 2 :(得分:0)

每次在Page_Load中初始化变量时,您的代码都会给您相同的值。每次发回邮件时都会触发此事件。

向页面添加hiddenField

<asp:HiddenField runat="server" id="hdnValue">

在Page_Load中执行此操作而不是分配值:

int evrno = Convert.ToString((hdnValue.Value == ""? "0" : hdnValue.Value));

答案 3 :(得分:0)

您可以使用财产。

public int Evrno {get; set;} = 21006;

protected void Page_Load(object sender, EventArgs e)
{

    string EVRAKNO = "SP-";
    if (!Page.IsPostBack)
    {
        Evnro+=1;    
    }

     // you can add 0 infront of Evnro if it is needed here
     string EvrakNu = EVRAKNO + Convert.ToString(Evnro); 
     txt_EvrakNo.Text = EvrakNu;    
}

答案 4 :(得分:0)

了解解决方案:

protected void Page_Load(object sender, EventArgs e)
{

        int evrno = 21006;
        string EVRAKNO = "SP-";

        //save initial value in Session
        if (Session["evrno"] == null)
        {
            Session["evrno"] = evrno;
        }
        if (Page.IsPostBack == false)
        {
            //used the value saved in Session
            evrno = Convert.ToInt32(Session["evrno"]) + 1;

        }
        string EvrakNu = EVRAKNO + evrno.ToString();

        //save NEW value in Session again
        Session["evrno"] = evrno;

        txt_EvrakNo.Text = EvrakNu;
        //Response.Write(EvrakNu);
}