0

我有一个包含菜单栏的母版页。此菜单链接到具有数十个选项的站点地图。我所做的是为每个菜单项呈现图标。

  protected void NavigationMenu_MenuItemDataBound(object sender, MenuEventArgs e)
    {
     SiteMapNode node = e.Item.DataItem as SiteMapNode;

     if (!string.IsNullOrEmpty(node["imageUrl"]))
       e.Item.ImageUrl = node["imageUrl"];    
    }

我知道在每次回帖时,此事件都会触发。有没有一种方法可以让我只加载一次而不必再次加载它们?

4

1 回答 1

0

处理程序在每个数据绑定事件上执行。此事件通常不会在每个回帖上执行,因为一旦在跟踪 ViewState 后设置了图像 url,它就会进入控件的 ViewState。

这意味着如果控件(菜单)的 DataBind() 没有被显式调用,则不会触发此事件。

这至少是其他数据绑定控件所做的。例如,网格不会在每次回发时重新绑定自身,除非分页/排序等 -> 需要重新构建状态的操作。

于 2013-02-28T10:36:07.027 回答