Мне нужно установить кнопку для каждого элемента репитера в C # (asp.net).
<com:Repeater runat="server" ID="list_repeater">
<ItemTemplate>
<tr>
<td>
<asp:LinkButton runat="server" ID="btnCancel" CommandArgument='<%# Eval("id") %>'>Cancel</asp:LinkButton>
</td>
...
</tr>
</ItemTemplate>
</com:Repeater>
Я связываю данные в PageLoad.
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
list_repeater.DataSource = ... getData ..;
list_repeater.DataBind();
...
}
}
Конечно, я связываюRepeaterItemEventHandler в списке.
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
base.LoadingControlAdd();
...
list_repeater.ItemDataBound += new RepeaterItemEventHandler(list_repeater_ItemDataBound);
...
}
, а затем я привязываю EventHandler к каждому btnCancel.
protected void list_repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton btnCancel = e.Item.FindControl("btnCancel") as LinkButton;
btnCancel.Click += new EventHandler(btnCancel_Click);
}
}
Но это не работает.Когда я нажимаю btnCancel каждого элемента, btnCancel_Click не запускается.Я думаю, что у меня все хорошо, и я не могу найти ни одного недостатка.Есть ли ошибка в коде выше, пожалуйста, скажите мне, что не так.Благодарю.(идентификатор на CommnadArgument установлен правильно, не обращайте на это внимания)