如何在每次点击按钮的情况下一次返回一个项目?

时间:2014-09-02 19:39:43

标签: c# arrays

我有一个我在表单加载上面声明的数组:

protected string[] Colors = new string [3] {"red", "green", "orange"};

当我点击此提交时,我想使用Response.Write();打印red第一次点击,green第二次点击它,然后最后orange我最后一次点击它。我正在阅读How do I get next item in array with each button click?,这个用户正在尝试与我尝试做的非常类似的事情,但是在这种情况下,看起来好像数组是动态的。

4 个答案:

答案 0 :(得分:2)

在会话中跟踪

 protected void Page_Load(object sender, EventArgs e)
    {           
        int? count = Session["count"] as int?;
        count = (count == null) ? 0 : count;
        Response.Write(Colors[count.Value]);
        count = (count + 1) % Colors.Length;
        Session["count"] = count;
    }

答案 1 :(得分:0)

您可以使用视图状态通过特定页面的请求/响应跟踪来跟踪某些信息。您可以在视图状态下存储索引,然后在单击按钮时使用该信息以查看应该在屏幕上打印的内容。

答案 2 :(得分:0)

仍在寻找解决方案,同时这样做会看到这个弹出窗口 这将获得您的按钮点击量:

ViewState["count"] = Convert.ToInt32(ViewState["count"]) + 1;

就循环数组而言,我仍在努力。我只能显示数组中的最后一项。

答案 3 :(得分:0)

您必须在ViewState中存储点击次数,并在按钮的点击事件处理程序中将其增加一个。

private int NumberOfClicks
{
   get { return (int)(ViewState["NumberOfClicks"] ?? 0 );
   set { ViewState["NumberOfClicks"] = value; }
}


protected void btn_Click(object sender, EventArgs e)
{
   if(NumberOfClicks < colorArray.Length)
   {
           //write to response colorArray[NumberOfClicks];
           NumberOfClicks += 1;
   }
}