问一个关于缓存数据的问题?我不想缓存整个页面,也不想缓存用户控件,我只想把dropdownlist 中的数据缓存下来,5分钟,如何做呢?

parsely 2005-05-22 08:19:19
就是说,我不想在 aspx 和 ascx 页上面加上

<%@ OutputCache Duration="60" VaryByParam="none" %>,

我只想把 dropdownlist 中的数据缓存5分钟,要如何做呢?

-----------------------------------

DataSet ds = .....;

dropDownList1.DataSource = ds
dropDownList.DataTextField = "lmName";
dropDownList.DataValueField = "lmID";
dropDownList.DataBind();
...全文
187 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlzbaby 2005-05-24
  • 打赏
  • 举报
回复
对对

调用的时候是 if(Cache["mydatalist"] != null)

不好意思

呵呵
zipo 2005-05-23
  • 打赏
  • 举报
回复
if(!HttpContext.Current.Cache.Exist("Your_Cache_Key_Here")) {
// read data here.you can save data in cache after retriving data.
HttpContext.Current.Cache.Insert("Your_Cache_Key_Here", data);
}
else {
data = (DataSet) HttpContext.Current.Cache.Get ("Your_Cache_Key_Here");
}
// your bind code here
dropDownList1.DataSource = data
dropDownList.DataTextField = "lmName";
dropDownList.DataValueField = "lmID";
dropDownList.DataBind();
cuike519 2005-05-23
  • 打赏
  • 举报
回复
if(!HttpContext.Current.Cache.Exist("Your_Cache_Key_Here")) {
// read data here.you can save data in cache after retriving data.
HttpContext.Current.Cache.Insert("Your_Cache_Key_Here", data);
}
else {
data = (DataSet) HttpContext.Current.Cache.Get ("Your_Cache_Key_Here");
}
// your bind code here
dropDownList1.DataSource = data
dropDownList.DataTextField = "lmName";
dropDownList.DataValueField = "lmID";
dropDownList.DataBind();
fanruinet 2005-05-23
  • 打赏
  • 举报
回复
应该是Cache["mydatalise"],不是圆括号
HALOcn 2005-05-23
  • 打赏
  • 举报
回复
学习
parsely 2005-05-23
  • 打赏
  • 举报
回复
举一个实际的例子行吗?
brando_beat 2005-05-23
  • 打赏
  • 举报
回复
学习
clkun 2005-05-23
  • 打赏
  • 举报
回复
up
parsely 2005-05-23
  • 打赏
  • 举报
回复
出错:

在以下这句上出错

if(Cache("mydatalist") != null)

----------------

出错信息:
c:\inetpub\wwwroot\linlin\Test\CacheData.aspx.cs(56): “System.Web.UI.Page.Cache”表示“属性”,此处应为“方法”


wlzbaby 2005-05-23
  • 打赏
  • 举报
回复
把 dropdownlist 的 DataSource 缓存下来

Cache.Inster("缓存名", ds, null, DateTime.Now.AddMinutes(5),TimeSpan.Zero)

然后在绑定之前先判断一下有没有缓存

if(Cache("缓存名") != null)
{
dropDownList1.DataSource = (DataTable)Cache("缓存名") //绑定前将缓存中的内容转化为你的数据源的类型,这里以 DataTable 为例
dropDownList.DataTextField = "lmName";
dropDownList.DataValueField = "lmID";
dropDownList.DataBind();
}
else
{
dropDownList1.DataSource = ds
dropDownList.DataTextField = "lmName";
dropDownList.DataValueField = "lmID";
dropDownList.DataBind();

Cache.Inster("缓存名", ds, null, DateTime.Now.AddMinutes(5),TimeSpan.Zero)
}
zeusvenus 2005-05-23
  • 打赏
  • 举报
回复
陕北吴旗娃)的方法我用过,可行.
webdiyer 2005-05-23
  • 打赏
  • 举报
回复
http://chs.gotdotnet.com/quickstart/aspplus/doc/datacaching.aspx
clkun 2005-05-22
  • 打赏
  • 举报
回复
支持
fanruinet 2005-05-22
  • 打赏
  • 举报
回复
用System.Web.Caching.Cache class,可以指定缓存的时间
Cache.Add()
public object Add(
string key,
object value,
CacheDependency dependencies,
DateTime absoluteExpiration,
TimeSpan slidingExpiration,
CacheItemPriority priority,
CacheItemRemovedCallback onRemoveCallback
);

62,046

社区成员

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

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

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

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