我有一个菜单控件,它用类别动态填充。当用户单击某个类别时,回发应该用该类别中的产品填充一个网格。然而,我似乎已经尽了一切可能,也就是说,无论页面的生命周期是什么时间,我总是会得到这个错误:
未能加载视图状态。加载视图状态的控件树必须与在上一个请求期间用于保存视图状态的控件树匹配。
以下是我的全部代码:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BuildCategoryMenu();
}
}
protected void categoryMenu_ItemClick(object source, DevExpress.Web.ASPxMenu.MenuItemEventArgs e)
{
var catId = new Guid(e.Item.Name);
ListProductsByCatId(catId);
}
private void BuildCategoryMenu()
{
var cats = _categoryService.ListActive();
categoryMenu.Items.Clear();
foreach (var cat in cats)
{
categoryMenu.Items.Add(new MenuItem { Text = cat.Name, Value = cat.id.ToString() });
}
}
private void ListProductsByCatId(Guid catId)
{
productGrid.DataSource = _productService.ListByCatId(new Guid("a5c2f0ef-a3cc-4af1-abac-37f1be6a5c74"));
productGrid.DataBind();
}
这是我的菜单:
<asp:Menu ID="categoryMenu" runat="server" EnableViewState="false">
</asp:Menu>
EnableViewState
只是
假
因为它不适用于
真
或者。