我正在汽车广告网站上工作。目前我正在尝试做一个简单的愿望清单功能,允许用户在点击按钮时将某些汽车存储到他的愿望清单中。我的汽车通过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的任何建议吗?
答案 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;
}