2012-03-12 52 views
0

me again,Change Session/ViewState on buttonclick

我有一个当前页面包含一个usercontrol列出建筑物。

下面是截图:http://i40.tinypic.com/2eusoyt.png

现在,我的导师问我要建立一个按钮,它允许让页面显示在2列的属性的用户。

我是怎么试试这个的? 我试图把在我的Page_Load如下:

  if (ViewState["numberOfColumns"] != null) 
      { 
       numberOfColumns= Int32.Parse(ViewState["numberOfColumns"].ToString()); 

      } 
      else 
      { 
       ViewState["numberOfColumns"] = 1; 
       numberOfColumns= 1; 
      } 

随后的按钮来查看后面我把这个代码:

 protected void btnView_Click(object sender, EventArgs e) 
    { 
     switch(numberOfColumns) 
     { 
      case 1: 
       numberOfColumns= 2; 
       ViewState["numberOfColumns"] = numberOfColumns; 

       break; 
      case 2: 
       numberOfColumns= 1; 
       ViewState["numberOfColumns"] = numberOfColumns; 
       break; 
     } 

    } 

但正如我猜测这种方法需要一个回传设置sessionvariable,和另一一个用最新值执行页面加载。

我知道应该有这样做的“正确方法”,但我找不到它。

任何直接你们可以指向我将不胜感激。

由于提前,克里斯托夫

+0

请把解决方案作为答案。符合SO方式。你可以在适当的时候接受你的答案。 – 2012-03-12 18:57:13

+0

对不起,我不能回答我自己的问题。 “声誉低于100的用户在询问后8小时内无法回答自己的问题,您可以在1小时内自行回答,直到此时请使用评论或编辑您的问题。 编辑:我会尽快做到这一点。 – 2012-03-12 18:57:46

+0

是的,你可以,系统允许你几个小时后。 – 2012-03-12 18:59:05

回答

0

好吧,

这是我做到了。

构建用户控件输出的方法直接在上面的代码片段之后调用。它被称为“GetProperties()”。

所以问题是,根据页面循环,.net首先执行Page_Load,最后是控制事件。

所以我做了第一次(当IsPostback = false时)在一个if中调用getProperties()。所以当你访问一次页面时,它将加载该方法,之后不再。

所以,然后我把方法调用放在我的按钮中,因为当你点击按钮IsPostback = true。

这工作。下面的代码片段: 保护无效的Page_Load(对象发件人,EventArgs的){ // 一些通用的东西

  if (!IsPostBack) 
      { 
       ViewState["kolommen"] = 1; 
       AantalKolommen = 1; 
       GetProperties(_tkth, _categorie, _verkochtverhuurd); 
      } 
     } 

而且后面的按钮,我做了以下内容:

 protected void btnView_Click(object sender, EventArgs e) 
    { 
     switch (Int32.Parse(ViewState["kolommen"].ToString())) 
     { 
      case 1: 
       AantalKolommen = 2; 
       ViewState["kolommen"] = 2; 
       break; 
      case 2: 
       AantalKolommen = 1; 
       ViewState["kolommen"] = 1; 
       break; 
     } 
     GetProperties(_tkth, _categorie, _verkochtverhuurd); 
    } 

这就像一个魅力。虽然如此,我仍然想知道如果这个

相关问题