Incrementing variables in ASP.net on button click

后端 未结 7 1762
别跟我提以往
别跟我提以往 2021-01-24 16:25

I am new to asp.net. I am creating a ASP.net website using VB.net. So here\'s my problem

Dim myCounter as Integer = 0

Protected Sub Button1_Click(ByVal sender A         


        
相关标签:
7条回答
  • 2021-01-24 16:59

    Her's another method that doesn't use hidden field, viewstate, session or cache

    Probably not something very 'safe' but probably saves you some time.

    Assuming initial Label1.Text = 0

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles Button1.Click
    
            Label1.Text = (Integer.Parse(Label1.Text) + 1).ToString()
    
    end Sub
    
    0 讨论(0)
  • 2021-01-24 16:59
       protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                ViewState["Count"] = 0;
            }
    
        }
    
        protected void btnCount_Click(object sender, EventArgs e)
        {
    
            ViewState["Count"] = (int)(ViewState["Count"]) + 1;
            lblCount.Text = "Page Visited " +ViewState["Count"].ToString() +" times !";
            //Response.Write(ViewState["Count"].ToString());
    
        }
    
    0 讨论(0)
  • 2021-01-24 17:01

    You can use view count :---

    Code on event of button_click..

    ViewState["count"] = Convert.ToInt32(ViewState["count"])+1;
    Label2.Text = "This button has been clicked " + ViewState["count"].ToString() + " times";
    
    0 讨论(0)
  • 2021-01-24 17:03

    Every time the page posts back, it is essentially starting over from scratch - anything initialized to 0, for example, will be zero again. This is because the server doesn't know anything about the last time the page ran - all it knows is you clicked a button which submits a form to that page, so it creates another instance of the page and starts again.

    If you need to persist a value across postbacks, the standard method is to use ViewState:

    Public Property MyCounter() As Integer
        Get
            Dim val As Object = ViewState("MyCounter")
            Return If(val IsNot Nothing, CInt(val), 0)
        End Get
        Set(ByVal value As Integer)
            ViewState("MyCounter") = value
        End Set
    End Property
    

    It's also possible to use Session, which will persist the value across all pages and requests for the life of the user's session. For that to work, you can use the same sample above, replacing ViewState with Session.

    0 讨论(0)
  • 2021-01-24 17:05

    Put this code in your Button Click Event

    int count=0;
    
    count++;
    
    ViewState["count"] = Convert.ToInt32(ViewState["count"]) + count;
    
    Label1.Text = ViewState["count"].ToString();
    
    0 讨论(0)
  • 2021-01-24 17:06

    @Rex M's suggestion for using Viewstate is good.

    If the counter is not sensitive information or something you're worried about someone tampering with., here's an easier idea:

    You can also use an <asp:HiddenField> and store the value there. Then it will persist between postbacks and you can increment it each time..

    0 讨论(0)
提交回复
热议问题