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

时间:2015-04-28 19:01:02

标签: c# label

我正在汽车广告网站上工作。目前我正在尝试做一个简单的愿望清单功能,允许用户在点击按钮时将某些汽车存储到他的愿望清单中。我的汽车通过DataList呈现给用户。因为在我想要的列表中的每个项目上只有一个按钮被重复创建,然后单击以检查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> 

按钮代码:

//table adapters initialization ommited


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

我遇到的问题是在按钮代码上显示:

  

名称&#39; carIDLabel&#39;在当前上下文中不存在。

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

1 个答案:

答案 0 :(得分:1)

您可以将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;
   }