我希望从当前页面访问一种方法,该方法创建动态控件并将它们附加到更新面板。我想在我的 CacheItemUpdateCallback 结束时调用这个方法来显示缓存中的新数据。
在做了一些研究之后,您似乎无法从异步方法访问 HttpContext.Current,因为它是特定于线程的。
在将新值写入缓存后,是否有更好的流程来强制刷新动态内容,或者是否有方法可以从我的 CacheItemUpdateCallback 访问 HttpContext.Current?
创建内容的方法,其中容器是我页面上的 div 对象数组:
public void createInnerHtml()
{
this.contentLength = ddlContentNumber.SelectedIndex + 1;
for (int i = 0; i < this.contentLength; i++)
{
containers[i].Controls.Clear();
containers[i].Attributes["Data-Value"] = mainFeeds[i].DataValue.ToString();
containers[i].InnerHtml = mainFeeds[i].getHeaderString();
containers[i].Controls.Add(controlManager.getControl(mainFeeds[i]));
}
}
我希望能够做什么:
private void openIncidentsUpdateCallback(string key, CacheItemUpdateReason reason, out object expensiveObject, out CacheDependency dependency, out DateTime absoluteExpiration, out TimeSpan slidingExpiration)
{
dependency = null;
absoluteExpiration = DateTime.Now.AddSeconds(25);
slidingExpiration = Cache.NoSlidingExpiration;
expensiveObject = getExpensiveObject()
Page page = (Page)HttpContext.Current.Handler;
if (page != null)
{
((ReportPage)page).createInnerHtml();
page.updatePanel1.update()
}
}