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