用户控件使用计数器动态添加到页面

时间:2012-03-18 21:13:10

标签: c# asp.net

我有一个静态int,用于记录已向页面添加了多少用户控件。

    static int mycount = 1; //Default value

当我向页面添加更多控件时,计数器获得+1,这正常工作

    static int mycount = 2; //Add second control

但是如果我在不同的浏览器中打开另一个页面实例,那么计数器仍然有mycount = 2

如果您打开一个新的浏览器会话,则static int默认为1。

我是否需要使用会话或什么?

// UPDATE

我在SO

上找到答案后使用了Sessions

How to access session variables from any class in ASP.NET?

关于会话处理的非常好的解释

2 个答案:

答案 0 :(得分:0)

是的,绝对! 静态变量的内存在为object-type分配的堆内分配。就我们实例化内存中每个页面只有一个对象类型而言,它的行为就像这样。 对于asp网页会话状态比静态变量更有用。 下一个post表示相同的详细信息。

答案 1 :(得分:0)

我绝对会建议使用非静态的东西,因为静态保存在内存中并且可能会在那里停留一段时间,否则会话变量存储在会话中,通常只取决于特定用户因此所有会话变量对于用户来说是唯一的,而静态变量更难以独特。

Session["mycount"] = 1;

http://msdn.microsoft.com/en-us/library/ms178581.aspx 或者根据您的情况,使用viewstate更好 http://msdn.microsoft.com/en-us/library/4yfdwycw%28v=vs.71%29.aspx

ViewState["mycount"] = "1";