Я предлагаю вам начать использовать настоящие Contols, такие как Repeater, вместо создания встроенного цикла.
В приведенном ниже фрагменте простого рабочего примера того, как использовать Repeater, заполните его данными и получите TagID при нажатии LinkButton.
Сначала добавьте Repeater на страницу aspx с помощью LinkButton в ItemTemplate. Обратите внимание на использование OnCommand
вместо OnClick
и свойства CommandArgument
.
<ul class="list_load">
<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<li class="list_item">
<asp:LinkButton runat="server" ID="lnkdisplaytag"
OnCommand="lnkdisplaytag_Command" CommandArgument='<%# Eval("TagId") %>'
Text='<%# Eval("TagName") %>'></asp:LinkButton>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
Чтобы заполнить ретранслятор, вам нужно сделать следующее в коде:
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack == false)
{
Repeater1.DataSource = dtscrippsyearcount;
Repeater1.DataBind();
}
}
Затем, когда нажата кнопка LinkButton, вы можете легко получить значение CommandArgument
.
protected void lnkdisplaytag_Command(object sender, CommandEventArgs e)
{
Label1.Text = e.CommandArgument.ToString();
}