用了缓存后:有时候缓存有时候不缓存(频率20%),有的时候点击按钮关刷新页面不执行程序(50%)把缓存删掉一切正常在用户控件中添加
<%@ OutputCache Duration="100000" VaryByParam="page;category" %><asp:DataList.... />this.CachePolicy.Dependency = DependencyFacade.GetRecommendation();//GetRecommendation()代码大致如下 System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications(ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString);
foreach (string tablename in tables)
{
SqlCacheDependencyAdmin.EnableTableForNotifications(ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString, tablename);
dependency.Add(new SqlCacheDependency(dbName, tablename));
}
<%@ OutputCache Duration="100000" VaryByParam="page;category" %><asp:DataList.... />this.CachePolicy.Dependency = DependencyFacade.GetRecommendation();//GetRecommendation()代码大致如下 System.Web.Caching.SqlCacheDependencyAdmin.EnableNotifications(ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString);
foreach (string tablename in tables)
{
SqlCacheDependencyAdmin.EnableTableForNotifications(ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString, tablename);
dependency.Add(new SqlCacheDependency(dbName, tablename));
}
页面刷新的时候是否为GET提交!
http://www.microsoft.com/china/MSDN/library/WebServices/ASP.NET/ASP.NETCaching-TechniquesandBestPractiCEs.mspx?mfr=true
如果用户控件包含名为“Category”的下拉选择框控件,用户控件的输出将基于在该控件中选择的值改变。
{
if(!IsPostBack)
{
if (Request["category"] != null && Request["page"] != null)
{
category = Request["category"];
DataBind_List(category, int.Parse(Request["page"]));
}
else
{
DataBind_List(category, 0);
}
this.CachePolicy.Dependency = DependencyFacade.GetRecommendation();
}
}private void DataBind_List(string category, int page)
{
Ds_Commodity = new DataSet();
Product product = new Product();
ArrayList arr; arr = product.Get_Product_Category(category, "Common", page, 8, string.Empty); ShopList.DataSource = (DataSet)arr[0];
ShopList.DataBind();
PageMinute_Url_Page1.Count = ((int[])arr[1])[0];
PageMinute_Url_Page1.Url = "ShopShow.aspx";
PageMinute_Url_Page1.Category = category;
PageMinute_Url_Page1.Number = 8;
PageMinute_Url_Page1.Index = page;
}public void AddToCartButton_Click(Object sender, EventArgs e)
{
ImageButton itemButton = (ImageButton)sender;
string arguments = itemButton.CommandArgument;
char[] parsChar = { '|' };
string[] addArgs = arguments.Split(parsChar); DataSet OrderItem; if (Session["OrderItem"] == null)
{
OrderItem = ShopCart.CreateCart();
}
else
OrderItem = (DataSet)Session["OrderItem"];
ShopCart.AddItem(OrderItem, Convert.ToInt32(addArgs[0]), addArgs[1], Convert.ToDouble(addArgs[2]), Convert.ToDouble(addArgs[3]), Convert.ToDouble(addArgs[4]));
Response.Redirect("~/Surce/ShopCart.aspx");
}
代码没有问题,这问题让人摸不找头脑
.aspx?page=0&category=1
不带上参数就不执行postback,这是为什么?头痛啊
My-Blog地址2: http://blog.csdn.net/nyzfl
page;category 参数没变 参数值大小写不一致,则 ASP.NET 会将该参数视为与原缓存项不同