我在 VS2010 中有一个网站项目,简而言之,我使用一个控件“BasketMenuItem.ascx”来显示购物车详细信息,总而言之在页面顶部。什么
在呈现导航的代码中,我有:
<tp:BasketMenuItem ID="basketMenuItem" runat="server" />
然后我有另一个控件,在每个产品页面上都有一个按钮,可以将 X 个产品项目添加到购物车。在添加项目时,我使用 javascript 突出显示购物车,然后我想刷新“BasketMenuItem”控件,以便显示正确的详细信息。
我想我可以做类似的事情(“usercontrols_Global_BasketMenuItem”是 BasketMenuItem 控件的类):
(usercontrols_Global_BasketMenuItem)Page.FindControl("basketMenuItem").LoadItems();
但是,我收到一条错误消息:
"The Type or Namespace Name BasketMenuItem could not be found (are you missing a using directive or an assembly reference?)"
我不确定如何解决这个问题。我不确定我需要包括什么,因为我不能简单地说:
using usercontrols_Global_BasketMenuItem;
我还尝试将 ClassName 属性添加到控制文件中,如下所示:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="BasketMenuItem.ascx.cs" ClassName="BasketMenuItem" Inherits="usercontrols_Global_BasketMenuItem" %>
但是我仍然无法引用它。
编码
首先,有 BasketMenuItem 控件。ascx 和 ascx.cs。这包含加载当前购物篮内容的方法。“加载项()”。
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="BasketMenuItem.ascx.cs" ClassName="BasketMenuItem" Inherits="BasketMenuItem" %>
public partial class BasketMenuItem : System.Web.UI.UserControl
{
//...
}
然后是菜单控件。这是 Basket 控件放置在导航页面上的位置:
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<!-- Cart -->
<tp:BasketMenuItem ID="basketMenuItem" runat="server" />
</ul>
最后是 ListItems 控件,定义如下。此控件包含将商品添加到购物车的按钮。这里我想在页面上找到BasketMenuItem控件,调用它的“LoadItems()”方法进行更新。
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="ListItems.ascx.cs" Inherits="ListItems" %>
public partial class ListItems : System.Web.UI.UserControl
{
//...
}
没有指定命名空间,根据我的阅读,我假设我可以在 ASP 命名空间中找到 BasketItem 控件。但是我不能。