页面按钮,放到缓存中。再次刷新页面,操作按钮的属性就失效了,不知道为什么啊?求高手

terry2018 2013-03-17 09:41:21
问题描述:获取页面的所有的LinkButton放到Dictionary<string, LinkButton>中,之后在把Dictionary<string, LinkButton>放到缓存中。第一次执行,按钮LinkButton2可以隐藏,再次刷新之后按钮LinkButton2会显示出来,调试结果是执行了LinkButton2.Visible=false。不知道哪里的问题啊?请高手指点指点。


页面代码

<asp:LinkButton ID="LinkButton1" runat="server">LinkButton1</asp:LinkButton>
<asp:LinkButton ID="LinkButton2" runat="server">LinkButton2</asp:LinkButton>
<asp:LinkButton ID="LinkButton3" runat="server">LinkButton3</asp:LinkButton>


后台代码


protected void Page_Load(object sender, EventArgs e)
{
foreach (KeyValuePair<string, LinkButton> item in GetPageControl())
{
if (item.Key.Contains("LinkButton2"))
{
item.Value.Visible = false;
}
}
}

private Dictionary<string, LinkButton> GetPageControl()
{
string CacheKey = "aaaaa";
object objDic = Common.DataCache.GetCache(CacheKey);
if (objDic == null)
{
try
{
Dictionary<string, LinkButton> dic = new Dictionary<string, LinkButton>();
foreach (Control childc in Page.Form.Controls)
{
if (childc is LinkButton)
{
dic.Add(childc.ID, childc as LinkButton);
}
}
objDic = dic;
if (objDic != null)
{
int cacheDic = Common.ConfigHelper.GetConfigInt("AdminPageControl");
Common.DataCache.SetCache(CacheKey, objDic, DateTime.Now.AddMinutes(cacheDic), TimeSpan.Zero);
}

}
catch { return null; }

}

return objDic as Dictionary<string, LinkButton>;
}



...全文
236 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
md5e 2013-03-18
  • 打赏
  • 举报
回复
你都没有把控件加载到页面,怎么可能会出来呢? Page.Controls.Add
terry2018 2013-03-18
  • 打赏
  • 举报
回复
了解了,结贴 散粉
devmiao 2013-03-17
  • 打赏
  • 举报
回复
每次刷新,成员变量就丢失了,因为asp.net产生一个新的Page对象。
  • 打赏
  • 举报
回复
什么乱七八糟的?谁告诉你这什么“缓存”的?你不知道asp.net每一次被请求时都开启了一个新的页面生命周期了吗?那么原来Page上的内容,你不扔掉还留着它干什么?
terry2018 2013-03-17
  • 打赏
  • 举报
回复
如果把缓存去掉,执行结果是正常的。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧