Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 我的UpdatePanel是否可以引用一个DataTable,而每次它发回时都不会命中DB?_Asp.net_.net_Datatable_Updatepanel_Postback - Fatal编程技术网

Asp.net 我的UpdatePanel是否可以引用一个DataTable,而每次它发回时都不会命中DB?

Asp.net 我的UpdatePanel是否可以引用一个DataTable,而每次它发回时都不会命中DB?,asp.net,.net,datatable,updatepanel,postback,Asp.net,.net,Datatable,Updatepanel,Postback,我在UpdatePanel中有一个分页中继器,这样我就可以一次显示数据表中的10条记录。当点击下一步/后退按钮时,它当然会显示下10条或前10条记录。当我点击next/back时,有没有一种方法可以让它引用相同的数据表,而不必再次从DB on page load获取数据表?我想我只是有点大脑放屁。感谢您的帮助。一个选项是使用.Net的缓存API。将数据添加到缓存中一段时间或使用依赖项,然后检索数据,而不是调用数据库查询 我同意@TimS,但如果您有这样的场景,希望根据某些条件显示记录,则需要使

我在UpdatePanel中有一个分页中继器,这样我就可以一次显示数据表中的10条记录。当点击下一步/后退按钮时,它当然会显示下10条或前10条记录。当我点击next/back时,有没有一种方法可以让它引用相同的数据表,而不必再次从DB on page load获取数据表?我想我只是有点大脑放屁。感谢您的帮助。

一个选项是使用.Net的缓存API。将数据添加到缓存中一段时间或使用依赖项,然后检索数据,而不是调用数据库查询


我同意@TimS,但如果您有这样的场景,希望根据某些条件显示记录,则需要使用ViewState(尽管这是最不鼓励的做法)存储特定于页面条件的数据表,并执行下一个和上一个操作。

或者,您可以将其添加到会话或ViewState中。但不确定哪种做法被认为是最佳做法。在会话对象中存储数据可能会导致更大的内存使用,因为每个会话都需要存储数据。在ViewState中存储大型数据集可能会显著增加页面大小和速度。缓存对象更适合这种情况,并提供了更大的灵活性和可扩展性。
public void AddItemToCache(Object sender, EventArgs e) {    
    if (Cache["Key1"] == null)
      Cache.Add("Key1", "Value 1", null, DateTime.Now.AddSeconds(60), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
}