ASP.NET回调问题

后台页面代码

 protected int[] result = new int[14];

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                result = RunContext.Instance.FaultsCount();
              }
         }

前台代码

<ul>
<li>正常站点:<%=result[8] %></li>

</ul>

<asp:Button ID="btn" runat="server" Text="单击" onclick="btn_Click" />

 

现象是第一次加载正常显示,点击按钮后回调result数据里的值没有了,因为是第二次加载,result初始化的代码不执行了

 

请问下这种问题怎么解决

哈士奇WWW
浏览 361回答 5
5回答

天涯尽头无女友

第一次,走了这个代码: if (!IsPostBack) { result = RunContext.Instance.FaultsCount(); }当你点击button的时候,回调不走上面的代码,而且你的那个result 是实例的,也就是每次页面刷新都是新的。这样,你可以用静态的保存,这样所有的人都可以访问这个界面都可以用到这个。或者用session,viewstate 来保存

LEATH

放if外面,你这没用服务器控件显示result,不会保存到ViewState里,因此每次Page_Load都要去重新取。

慕运维8079593

楼上是一种办法 还有种就是把  result = RunContext.Instance.FaultsCount(); 放到btn_click时间里面也是可以的

慕村225694

抱歉 本意是减少这个代码的执行
打开App,查看更多内容
随时随地看视频慕课网APP