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

Is it possible to access element from inside DataList

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

到目前为止我已经想到了这个:

<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> 

按钮代码:

//table adapters initialization ommited


foreach (DataRow row in carDetailsTable.Rows) 
if (carIDLabel.Text == System.Convert.ToString(row["carID"]))
{
    //DB insertion ommited
}

我遇到的问题是按钮代码上写着:

The name 'carIDLabel' does not exist in the current context.

关于如何访问标签的信息或任何其他更智能的比较然后添加到 wishDB 的方法有什么建议吗?

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

<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;
   }