C# 是否可以从DataList内部访问元素

C# 是否可以从DataList内部访问元素,c#,label,C#,Label,我在一家汽车广告网站上工作。目前,我正在尝试做一个简单的愿望列表功能,允许用户在点击按钮时将某些汽车存储到他的愿望列表中。我的汽车通过数据列表呈现给用户。由于只有一个按钮在我想要的列表中的每个项目上重复创建,单击以检查DB中的哪个记录对应于单击该按钮的项目,然后将其添加到另一个愿望列表DB 到目前为止,我已经得出了以下结论: <ItemTemplate> carID: <asp:Label ID="carIDLabel" runat="server" Visib

我在一家汽车广告网站上工作。目前,我正在尝试做一个简单的愿望列表功能,允许用户在点击按钮时将某些汽车存储到他的愿望列表中。我的汽车通过数据列表呈现给用户。由于只有一个按钮在我想要的列表中的每个项目上重复创建,单击以检查DB中的哪个记录对应于单击该按钮的项目,然后将其添加到另一个愿望列表DB

到目前为止,我已经得出了以下结论:

<ItemTemplate>
    carID:
    <asp:Label ID="carIDLabel" runat="server" Visible="false" 
         Text='<%# Eval("carID") %>' />
    <br />                
    <asp:Button ID="btn_wishList" runat="server" Text="Add to Wishlist" 
    onclick="btn_wishList_Click" />
    <br />
</ItemTemplate> 
我遇到的问题是,按钮代码上显示:

当前上下文中不存在名称“carIDLabel”


有没有关于如何访问标签信息或其他更智能的方式进行比较并添加到wishDB的建议

您可以将ID作为命令参数直接放在Button控件中,并处理OnCommand事件:

<asp:Button ID="btn_wishList" runat="server" Text="Add to Wishlist" CommandArgument="<%# Eval("carID") %>" OnCommand="btn_wishList_Command" />

您根本不需要引用按钮ID。每行中的数据都有一个carID,而不是像您在示例中那样将该值分配给标签,我们现在将其直接分配给按钮。当用户单击特定行的按钮时,该值将传递给事件处理程序。
<asp:Button ID="btn_wishList" runat="server" Text="Add to Wishlist" CommandArgument="<%# Eval("carID") %>" OnCommand="btn_wishList_Command" />
   protected void btn_wishList_Command(object sender, CommandEventArgs e)
   {
      string id = (string)e.CommandArgument;
   }